forked from pool/glibc
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 <math.h> 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
This commit is contained in:
parent
a70ef84746
commit
746e16d2b9
@ -1,38 +0,0 @@
|
||||
From c272f67f9fc4c354336241ef4f3876771ccab443 Mon Sep 17 00:00:00 2001
|
||||
From: Andreas Schwab <schwab@suse.de>
|
||||
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
|
||||
|
@ -1,94 +0,0 @@
|
||||
From b39949d21179bd0b08a083e4f7e35d0c98e11294 Mon Sep 17 00:00:00 2001
|
||||
From: Carlos O'Donell <carlos@redhat.com>
|
||||
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 <carlos@redhat.com>
|
||||
---
|
||||
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 <ldconfig.h>
|
||||
|
||||
+/* 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 <dl-cache.h>
|
||||
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
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f397e09eec2ac12228659cd1b86ff93b501934bcedda6ca8e20557954694f21a
|
||||
size 358200
|
17
cbrtl-ldbl-96.patch
Normal file
17
cbrtl-ldbl-96.patch
Normal file
@ -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.
|
@ -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 <solar at openwall.com> 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 <shlib-compat.h>
|
||||
+#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
|
||||
|
@ -1,191 +0,0 @@
|
||||
From 57847d6ed77fe969cc598e47452c76278a69f7bd Mon Sep 17 00:00:00 2001
|
||||
From: Andreas Schwab <schwab@suse.de>
|
||||
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
|
||||
|
@ -1,241 +0,0 @@
|
||||
2013-07-21 Siddhesh Poyarekar <siddhesh@redhat.com>
|
||||
Andreas Schwab <schwab@suse.de>
|
||||
Roland McGrath <roland@hack.frob.com>
|
||||
Joseph Myers <joseph@codesourcery.com>
|
||||
Carlos O'Donell <carlos@redhat.com>
|
||||
|
||||
[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 <sysdeps/unix/grantpt.c>
|
@ -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)
|
||||
{
|
||||
|
@ -1,62 +0,0 @@
|
||||
From 1cef1b19089528db11f221e938f60b9b048945d7 Mon Sep 17 00:00:00 2001
|
||||
From: Andreas Schwab <schwab@suse.de>
|
||||
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
|
||||
|
@ -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
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d0ad63189c3d0799ee671b0b565f8d113c43d1759894c9002ba58bf212af8abf
|
||||
size 11173392
|
3
glibc-2.17.90-85891acadf1b.tar.xz
Normal file
3
glibc-2.17.90-85891acadf1b.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5a58b32a88c982b0eebdaca9a0b8c14441ebbb15174b10f69a98f82eb849ce73
|
||||
size 11780928
|
@ -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 (;;)
|
||||
{
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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
|
||||
}
|
||||
}
|
||||
|
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:fe966fc1d1082da024fda16d4ad1e8e2b73f30d646701d24a27882ec653b5807
|
||||
size 329247
|
||||
oid sha256:10f1db566a96ef0e012c79fc18844593f56424a1e5a7d1b3f6521b2fdc1753e9
|
||||
size 329284
|
||||
|
@ -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 /
|
||||
|
@ -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 \
|
||||
|
@ -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 !!!
|
||||
|
@ -1,49 +0,0 @@
|
||||
libc:cbc105f8b590fa5f5343160ef0a33dde6366c427
|
||||
|
||||
2013-03-14 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
* 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
|
@ -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.
|
||||
*/
|
||||
|
@ -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. */
|
||||
|
@ -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))
|
||||
|
@ -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)"; \
|
||||
|
@ -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 <time.h>
|
||||
#include <unistd.h>
|
||||
@ -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. */
|
||||
|
@ -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
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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 <arpa/nameser.h>
|
||||
#include <resolv.h>
|
||||
|
@ -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 <math.h> 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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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 \
|
||||
|
@ -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 <math.h> 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
|
||||
|
||||
|
@ -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 \
|
||||
|
@ -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\
|
||||
|
@ -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 <math.h> 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
|
||||
|
||||
|
55
glibc.spec
55
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 \
|
||||
|
@ -15,14 +15,14 @@
|
||||
#include <sys/stat.h>
|
||||
#include <elf.h>
|
||||
|
||||
#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));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
@ -45,7 +45,7 @@ Index: glibc-2.17/string/test-strcasecmp.c
|
||||
#include <ctype.h>
|
||||
#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
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
@ -100,7 +100,7 @@ Index: glibc-2.17/string/test-strncasecmp.c
|
||||
#include <ctype.h>
|
||||
#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 ();
|
||||
|
@ -1,98 +0,0 @@
|
||||
2013-06-11 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
[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. */
|
@ -1,178 +0,0 @@
|
||||
From 5a7b70c87c5ba03a122db0372e87ecb550ee4b38 Mon Sep 17 00:00:00 2001
|
||||
From: Andreas Schwab <schwab@suse.de>
|
||||
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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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 <unistd.h>
|
||||
#include <sys/ptrace.h>
|
||||
@ -15,7 +15,7 @@ Index: glibc-2.17/elf/pldd.c
|
||||
|
||||
#include <ldsodefs.h>
|
||||
#include <version.h>
|
||||
@@ -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[])
|
||||
}
|
||||
|
||||
|
||||
|
@ -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; \
|
||||
|
@ -1,526 +0,0 @@
|
||||
From b8a72d0c4ca74e52ea06fa4e56489499489ec158 Mon Sep 17 00:00:00 2001
|
||||
From: Andreas Schwab <schwab@suse.de>
|
||||
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
|
||||
|
@ -1,161 +0,0 @@
|
||||
From a445af0bc722d620afed7683cd320c0e4c7c6059 Mon Sep 17 00:00:00 2001
|
||||
From: Andreas Schwab <schwab@suse.de>
|
||||
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
|
||||
+ <http://www.gnu.org/licenses/>. */
|
||||
+
|
||||
+#define _GNU_SOURCE 1
|
||||
+#include <stdio.h>
|
||||
+#include <string.h>
|
||||
+#include <locale.h>
|
||||
+#include <regex.h>
|
||||
+
|
||||
+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
|
||||
|
288
rtlddir.patch
288
rtlddir.patch
@ -1,288 +0,0 @@
|
||||
From aaa8cb4b43511c62b11ac6f10e9beea3d5035a68 Mon Sep 17 00:00:00 2001
|
||||
From: Andreas Schwab <schwab@suse.de>
|
||||
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 $(<F) $@ >> $(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) $(<F) $@
|
||||
+$(LN_S) `$(..)scripts/rellns-sh -p $< $@` $@
|
||||
endef
|
||||
endif
|
||||
|
||||
@@ -937,7 +937,7 @@ $(inst_libdir)/libc.so: $(common-objpfx)
|
||||
cat $<; \
|
||||
echo 'GROUP ( $(slibdir)/libc.so$(libc.so-version)' \
|
||||
'$(libdir)/$(patsubst %,$(libtype.oS),$(libprefix)$(libc-name))'\
|
||||
- ' AS_NEEDED (' $(slibdir)/$(rtld-installed-name) ') )' \
|
||||
+ ' AS_NEEDED (' $(rtlddir)/$(rtld-installed-name) ') )' \
|
||||
) > $@.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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
+# 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
|
@ -1,44 +0,0 @@
|
||||
From 3cc4f772e4e1a0999bf9a51a585c35d6f60421b6 Mon Sep 17 00:00:00 2001
|
||||
From: Andreas Schwab <schwab@suse.de>
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user