From 746e16d2b9491cfe06f3a6875f87081862ed4b39ee0acc7467a83129b88adce0 Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Tue, 6 Aug 2013 14:52:55 +0000 Subject: [PATCH] Accepting request 186119 from home:Andreas_Schwab:glibc - 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. OBS-URL: https://build.opensuse.org/request/show/186119 OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=304 --- 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.17.90-85891acadf1b.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 | 57 ++++ glibc-testsuite.patch | 6 +- glibc-testsuite.spec | 55 +-- glibc-utils.changes | 57 ++++ glibc-utils.spec | 55 +-- glibc-version.diff | 8 +- glibc.changes | 57 ++++ glibc.spec | 55 +-- 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 ----------------------------- regexp-overrun.patch | 161 --------- rtlddir.patch | 288 ---------------- strptime-W-week.patch | 44 --- 51 files changed, 506 insertions(+), 2732 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.17.90-85891acadf1b.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 delete mode 100644 regexp-overrun.patch delete mode 100644 rtlddir.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.17.90-85891acadf1b.tar.xz b/glibc-2.17.90-85891acadf1b.tar.xz new file mode 100644 index 0000000..6b7c6a5 --- /dev/null +++ b/glibc-2.17.90-85891acadf1b.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a58b32a88c982b0eebdaca9a0b8c14441ebbb15174b10f69a98f82eb849ce73 +size 11780928 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..21cb864 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,60 @@ +------------------------------------------------------------------- +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..4a90773 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -106,10 +106,10 @@ 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.17.90 Release: 0 -%define glibc_major_version 2.17 -%define git_id c758a6861537 +%define glibc_major_version 2.17.90 +%define git_id 85891acadf1b Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build Source: glibc-%{version}-%{git_id}.tar.xz @@ -239,48 +239,24 @@ 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 # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -481,27 +457,14 @@ 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 %patch3000 @@ -607,7 +570,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 +606,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..21cb864 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,60 @@ +------------------------------------------------------------------- +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..106fdfd 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -105,10 +105,10 @@ 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.17.90 Release: 0 -%define glibc_major_version 2.17 -%define git_id c758a6861537 +%define glibc_major_version 2.17.90 +%define git_id 85891acadf1b Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build Source: glibc-%{version}-%{git_id}.tar.xz @@ -238,48 +238,24 @@ 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 # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -481,27 +457,14 @@ 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 %patch3000 @@ -607,7 +570,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 +606,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..21cb864 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,60 @@ +------------------------------------------------------------------- +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..9fb08fe 100644 --- a/glibc.spec +++ b/glibc.spec @@ -106,10 +106,10 @@ 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.17.90 Release: 0 -%define glibc_major_version 2.17 -%define git_id c758a6861537 +%define glibc_major_version 2.17.90 +%define git_id 85891acadf1b Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build Source: glibc-%{version}-%{git_id}.tar.xz @@ -239,48 +239,24 @@ 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 # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -481,27 +457,14 @@ 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 %patch3000 @@ -607,7 +570,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 +606,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/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/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 -