forked from pool/glibc
Accepting request 141127 from home:a_jaeger:devel-glibc
Update to glibc 2.17 development version OBS-URL: https://build.opensuse.org/request/show/141127 OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=227
This commit is contained in:
parent
0b06ab6125
commit
2b52d0268e
@ -1,8 +1,8 @@
|
|||||||
Index: glibc-2.15.90/Versions.def
|
Index: glibc-2.16.90/Versions.def
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.15.90.orig/Versions.def
|
--- glibc-2.16.90.orig/Versions.def
|
||||||
+++ glibc-2.15.90/Versions.def
|
+++ glibc-2.16.90/Versions.def
|
||||||
@@ -41,6 +41,7 @@ libc {
|
@@ -42,6 +42,7 @@ libc {
|
||||||
}
|
}
|
||||||
libcrypt {
|
libcrypt {
|
||||||
GLIBC_2.0
|
GLIBC_2.0
|
||||||
@ -10,10 +10,10 @@ Index: glibc-2.15.90/Versions.def
|
|||||||
}
|
}
|
||||||
libdl {
|
libdl {
|
||||||
GLIBC_2.0
|
GLIBC_2.0
|
||||||
Index: glibc-2.15.90/crypt/Versions
|
Index: glibc-2.16.90/crypt/Versions
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.15.90.orig/crypt/Versions
|
--- glibc-2.16.90.orig/crypt/Versions
|
||||||
+++ glibc-2.15.90/crypt/Versions
|
+++ glibc-2.16.90/crypt/Versions
|
||||||
@@ -3,4 +3,7 @@ libcrypt {
|
@@ -3,4 +3,7 @@ libcrypt {
|
||||||
crypt; crypt_r; encrypt; encrypt_r; fcrypt; setkey; setkey_r;
|
crypt; crypt_r; encrypt; encrypt_r; fcrypt; setkey; setkey_r;
|
||||||
crypt_rn; crypt_ra; crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra;
|
crypt_rn; crypt_ra; crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: glibc-2.15.90/crypt/Makefile
|
Index: glibc-2.16.90/crypt/Makefile
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.15.90.orig/crypt/Makefile
|
--- glibc-2.16.90.orig/crypt/Makefile
|
||||||
+++ glibc-2.15.90/crypt/Makefile
|
+++ glibc-2.16.90/crypt/Makefile
|
||||||
@@ -21,6 +21,7 @@
|
@@ -21,6 +21,7 @@
|
||||||
subdir := crypt
|
subdir := crypt
|
||||||
|
|
||||||
@ -16,13 +16,13 @@ Index: glibc-2.15.90/crypt/Makefile
|
|||||||
|
|
||||||
+libcrypt-routines += crypt_blowfish x86 crypt_gensalt wrapper
|
+libcrypt-routines += crypt_blowfish x86 crypt_gensalt wrapper
|
||||||
+
|
+
|
||||||
tests := cert md5c-test sha256c-test sha512c-test
|
tests := cert md5c-test sha256c-test sha512c-test badsalttest
|
||||||
|
|
||||||
include ../Makeconfig
|
include ../Makeconfig
|
||||||
Index: glibc-2.15.90/crypt/Versions
|
Index: glibc-2.16.90/crypt/Versions
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.15.90.orig/crypt/Versions
|
--- glibc-2.16.90.orig/crypt/Versions
|
||||||
+++ glibc-2.15.90/crypt/Versions
|
+++ glibc-2.16.90/crypt/Versions
|
||||||
@@ -1,5 +1,6 @@
|
@@ -1,5 +1,6 @@
|
||||||
libcrypt {
|
libcrypt {
|
||||||
GLIBC_2.0 {
|
GLIBC_2.0 {
|
||||||
@ -30,11 +30,11 @@ Index: glibc-2.15.90/crypt/Versions
|
|||||||
+ crypt_rn; crypt_ra; crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra;
|
+ crypt_rn; crypt_ra; crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Index: glibc-2.15.90/crypt/crypt-entry.c
|
Index: glibc-2.16.90/crypt/crypt-entry.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.15.90.orig/crypt/crypt-entry.c
|
--- glibc-2.16.90.orig/crypt/crypt-entry.c
|
||||||
+++ glibc-2.15.90/crypt/crypt-entry.c
|
+++ glibc-2.16.90/crypt/crypt-entry.c
|
||||||
@@ -79,7 +79,7 @@ extern struct crypt_data _ufc_foobar;
|
@@ -81,7 +81,7 @@ extern struct crypt_data _ufc_foobar;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
char *
|
char *
|
||||||
@ -43,7 +43,7 @@ Index: glibc-2.15.90/crypt/crypt-entry.c
|
|||||||
const char *key;
|
const char *key;
|
||||||
const char *salt;
|
const char *salt;
|
||||||
struct crypt_data * __restrict data;
|
struct crypt_data * __restrict data;
|
||||||
@@ -134,6 +134,7 @@ __crypt_r (key, salt, data)
|
@@ -155,6 +155,7 @@ __crypt_r (key, salt, data)
|
||||||
_ufc_output_conversion_r (res[0], res[1], salt, data);
|
_ufc_output_conversion_r (res[0], res[1], salt, data);
|
||||||
return data->crypt_3_buf;
|
return data->crypt_3_buf;
|
||||||
}
|
}
|
||||||
@ -51,7 +51,7 @@ Index: glibc-2.15.90/crypt/crypt-entry.c
|
|||||||
weak_alias (__crypt_r, crypt_r)
|
weak_alias (__crypt_r, crypt_r)
|
||||||
|
|
||||||
char *
|
char *
|
||||||
@@ -174,3 +175,4 @@ __fcrypt (key, salt)
|
@@ -197,3 +198,4 @@ __fcrypt (key, salt)
|
||||||
return crypt (key, salt);
|
return crypt (key, salt);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:20d50dad9b65e8ed9936825f71a5cd6dc45f5cdefecd76290b4f744a1ed1e5f1
|
|
||||||
size 10145504
|
|
@ -1,77 +0,0 @@
|
|||||||
2012-07-02 Jeroen van Bemmel <jvb127@gmail.com>
|
|
||||||
|
|
||||||
[BZ #14307]
|
|
||||||
[BZ #13904]
|
|
||||||
* sysdeps/posix/getaddrinfo.c ( gaih_inet ): Increase the size of
|
|
||||||
the temporary buffer used to invoke __gethostbyname2_r,
|
|
||||||
__gethostbyaddr_r and gethostbyname4_r to make room for struct
|
|
||||||
host_data / struct gaih_addrtuple.
|
|
||||||
* resolv/nss_dns/dns-host.c (global scope): Move definition of
|
|
||||||
implementation constants MAX_NR_ALIASES and MAX_NR_ADDRS to
|
|
||||||
header file nss/nsswitch.h.
|
|
||||||
* nss/nsswitch.h (global scope): Add definition of implementation
|
|
||||||
constants MAX_NR_ALIASES and MAX_NR_ADDRS (moved from
|
|
||||||
resolv/nss_dns/dns-host.c).
|
|
||||||
|
|
||||||
diff --git glibc/nss/nsswitch.h glibc/nss/nsswitch.h
|
|
||||||
index 90e208b..8965819 100644
|
|
||||||
--- glibc/nss/nsswitch.h
|
|
||||||
+++ glibc/nss/nsswitch.h
|
|
||||||
@@ -198,4 +198,8 @@ extern int __nss_hostname_digits_dots (const char *name,
|
|
||||||
int *h_errnop);
|
|
||||||
libc_hidden_proto (__nss_hostname_digits_dots)
|
|
||||||
|
|
||||||
+/* Maximum number of aliases we allow. */
|
|
||||||
+#define MAX_NR_ALIASES 48
|
|
||||||
+#define MAX_NR_ADDRS 48
|
|
||||||
+
|
|
||||||
#endif /* nsswitch.h */
|
|
||||||
diff --git glibc/resolv/nss_dns/dns-host.c glibc/resolv/nss_dns/dns-host.c
|
|
||||||
index a924d40..6b62c05 100644
|
|
||||||
--- glibc/resolv/nss_dns/dns-host.c
|
|
||||||
+++ glibc/resolv/nss_dns/dns-host.c
|
|
||||||
@@ -88,10 +88,6 @@
|
|
||||||
|
|
||||||
#define RESOLVSORT
|
|
||||||
|
|
||||||
-/* Maximum number of aliases we allow. */
|
|
||||||
-#define MAX_NR_ALIASES 48
|
|
||||||
-#define MAX_NR_ADDRS 48
|
|
||||||
-
|
|
||||||
#if PACKETSZ > 65536
|
|
||||||
# define MAXPACKET PACKETSZ
|
|
||||||
#else
|
|
||||||
diff --git glibc/sysdeps/posix/getaddrinfo.c glibc/sysdeps/posix/getaddrinfo.c
|
|
||||||
index 2eca2ae..efb0423 100644
|
|
||||||
--- glibc/sysdeps/posix/getaddrinfo.c
|
|
||||||
+++ glibc/sysdeps/posix/getaddrinfo.c
|
|
||||||
@@ -568,7 +568,8 @@ gaih_inet (const char *name, const struct gaih_service *service,
|
|
||||||
IPv6 scope ids. */
|
|
||||||
if (req->ai_family == AF_INET)
|
|
||||||
{
|
|
||||||
- size_t tmpbuflen = 512;
|
|
||||||
+ /* Allocate additional room for struct host_data in getanswer_r */
|
|
||||||
+ size_t tmpbuflen = 512 + MAX_NR_ALIASES * sizeof(char*) + 16 * sizeof(char);
|
|
||||||
assert (tmpbuf == NULL);
|
|
||||||
tmpbuf = alloca_account (tmpbuflen, alloca_used);
|
|
||||||
int rc;
|
|
||||||
@@ -811,7 +812,7 @@ gaih_inet (const char *name, const struct gaih_service *service,
|
|
||||||
old_res_options = _res.options;
|
|
||||||
_res.options &= ~RES_USE_INET6;
|
|
||||||
|
|
||||||
- size_t tmpbuflen = 1024;
|
|
||||||
+ size_t tmpbuflen = 1024 + sizeof(struct gaih_addrtuple);
|
|
||||||
malloc_tmpbuf = !__libc_use_alloca (alloca_used + tmpbuflen);
|
|
||||||
assert (tmpbuf == NULL);
|
|
||||||
if (!malloc_tmpbuf)
|
|
||||||
@@ -1113,7 +1114,9 @@ gaih_inet (const char *name, const struct gaih_service *service,
|
|
||||||
struct hostent *h = NULL;
|
|
||||||
int herrno;
|
|
||||||
struct hostent th;
|
|
||||||
- size_t tmpbuf2len = 512;
|
|
||||||
+ /* Add room for struct host_data in resolv/nss_dns/dns-host.c */
|
|
||||||
+ size_t tmpbuf2len = 512 + (MAX_NR_ALIASES+MAX_NR_ADDRS+1)*sizeof(char*)
|
|
||||||
+ + 16 * sizeof(char);
|
|
||||||
|
|
||||||
do
|
|
||||||
{
|
|
3
glibc-2.16.90-7e2bd01fcf3c.tar.xz
Normal file
3
glibc-2.16.90-7e2bd01fcf3c.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:ca5cd6de3eb414d7114c9ed966ed7f4afcfd523eb5e515b5b0528533dd397a37
|
||||||
|
size 11120836
|
@ -1,8 +1,8 @@
|
|||||||
Index: glibc-2.15.90/elf/rtld.c
|
Index: glibc-2.16.90/elf/rtld.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.15.90.orig/elf/rtld.c
|
--- glibc-2.16.90.orig/elf/rtld.c
|
||||||
+++ glibc-2.15.90/elf/rtld.c
|
+++ glibc-2.16.90/elf/rtld.c
|
||||||
@@ -1813,6 +1813,53 @@ ERROR: ld.so: object '%s' cannot be load
|
@@ -1717,6 +1717,53 @@ ERROR: ld.so: object '%s' cannot be load
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,18 +3,18 @@ The addition of the Blowfish cipher functions also requires updating
|
|||||||
the ABI check list for all targets.
|
the ABI check list for all targets.
|
||||||
|
|
||||||
---
|
---
|
||||||
glibc-ports-2.16/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist | 12 ++++++++++
|
ports/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist | 12 ++++++++++
|
||||||
glibc-ports-2.16/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist | 12 ++++++++++
|
ports/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist | 12 ++++++++++
|
||||||
glibc-ports-2.16/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist | 12 ++++++++++
|
ports/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist | 12 ++++++++++
|
||||||
glibc-ports-2.16/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist | 12 ++++++++++
|
ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist | 12 ++++++++++
|
||||||
glibc-ports-2.16/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist | 12 ++++++++++
|
ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist | 12 ++++++++++
|
||||||
glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist | 12 ++++++++++
|
ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist | 12 ++++++++++
|
||||||
glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist | 12 ++++++++++
|
ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist | 12 ++++++++++
|
||||||
glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist | 12 ++++++++++
|
ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist | 12 ++++++++++
|
||||||
glibc-ports-2.16/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist | 12 ++++++++++
|
ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist | 12 ++++++++++
|
||||||
glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist | 12 ++++++++++
|
ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist | 12 ++++++++++
|
||||||
glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist | 12 ++++++++++
|
ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist | 12 ++++++++++
|
||||||
glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist | 12 ++++++++++
|
ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist | 12 ++++++++++
|
||||||
sysdeps/unix/sysv/linux/i386/nptl/libcrypt.abilist | 12 ++++++++++
|
sysdeps/unix/sysv/linux/i386/nptl/libcrypt.abilist | 12 ++++++++++
|
||||||
sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libcrypt.abilist | 12 ++++++++++
|
sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libcrypt.abilist | 12 ++++++++++
|
||||||
sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt.abilist | 12 ++++++++++
|
sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt.abilist | 12 ++++++++++
|
||||||
@ -27,10 +27,10 @@ the ABI check list for all targets.
|
|||||||
sysdeps/unix/sysv/linux/x86_64/x32/nptl/libcrypt.abilist | 12 ++++++++++
|
sysdeps/unix/sysv/linux/x86_64/x32/nptl/libcrypt.abilist | 12 ++++++++++
|
||||||
22 files changed, 264 insertions(+)
|
22 files changed, 264 insertions(+)
|
||||||
|
|
||||||
Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist
|
Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist
|
--- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist
|
||||||
+++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist
|
+++ glibc-2.16/ports/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist
|
||||||
@@ -1,9 +1,21 @@
|
@@ -1,9 +1,21 @@
|
||||||
GLIBC_2.0
|
GLIBC_2.0
|
||||||
GLIBC_2.0 A
|
GLIBC_2.0 A
|
||||||
@ -53,10 +53,10 @@ Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.a
|
|||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
+ crypt_ra F
|
+ crypt_ra F
|
||||||
+ crypt_rn F
|
+ crypt_rn F
|
||||||
Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist
|
Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist
|
--- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist
|
||||||
+++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist
|
+++ glibc-2.16/ports/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist
|
||||||
@@ -1,9 +1,21 @@
|
@@ -1,9 +1,21 @@
|
||||||
GLIBC_2.4
|
GLIBC_2.4
|
||||||
GLIBC_2.4 A
|
GLIBC_2.4 A
|
||||||
@ -79,10 +79,10 @@ Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abi
|
|||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
+ crypt_ra F
|
+ crypt_ra F
|
||||||
+ crypt_rn F
|
+ crypt_rn F
|
||||||
Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist
|
Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist
|
--- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist
|
||||||
+++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist
|
+++ glibc-2.16/ports/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist
|
||||||
@@ -1,9 +1,21 @@
|
@@ -1,9 +1,21 @@
|
||||||
GLIBC_2.0
|
GLIBC_2.0
|
||||||
GLIBC_2.0 A
|
GLIBC_2.0 A
|
||||||
@ -105,10 +105,10 @@ Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.ab
|
|||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
+ crypt_ra F
|
+ crypt_ra F
|
||||||
+ crypt_rn F
|
+ crypt_rn F
|
||||||
Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist
|
Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist
|
--- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist
|
||||||
+++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist
|
+++ glibc-2.16/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist
|
||||||
@@ -1,9 +1,21 @@
|
@@ -1,9 +1,21 @@
|
||||||
GLIBC_2.4
|
GLIBC_2.4
|
||||||
GLIBC_2.4 A
|
GLIBC_2.4 A
|
||||||
@ -131,10 +131,10 @@ Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/li
|
|||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
+ crypt_ra F
|
+ crypt_ra F
|
||||||
+ crypt_rn F
|
+ crypt_rn F
|
||||||
Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist
|
Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist
|
--- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist
|
||||||
+++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist
|
+++ glibc-2.16/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist
|
||||||
@@ -1,9 +1,21 @@
|
@@ -1,9 +1,21 @@
|
||||||
GLIBC_2.0
|
GLIBC_2.0
|
||||||
GLIBC_2.0 A
|
GLIBC_2.0 A
|
||||||
@ -157,10 +157,10 @@ Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libc
|
|||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
+ crypt_ra F
|
+ crypt_ra F
|
||||||
+ crypt_rn F
|
+ crypt_rn F
|
||||||
Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist
|
Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist
|
--- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist
|
||||||
+++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist
|
+++ glibc-2.16/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist
|
||||||
@@ -1,7 +1,12 @@
|
@@ -1,7 +1,12 @@
|
||||||
GLIBC_2.0
|
GLIBC_2.0
|
||||||
GLIBC_2.0 A
|
GLIBC_2.0 A
|
||||||
@ -185,10 +185,10 @@ Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips32/nptl/libc
|
|||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
+ crypt_ra F
|
+ crypt_ra F
|
||||||
+ crypt_rn F
|
+ crypt_rn F
|
||||||
Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist
|
Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist
|
--- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist
|
||||||
+++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist
|
+++ glibc-2.16/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist
|
||||||
@@ -1,9 +1,21 @@
|
@@ -1,9 +1,21 @@
|
||||||
GLIBC_2.0
|
GLIBC_2.0
|
||||||
GLIBC_2.0 A
|
GLIBC_2.0 A
|
||||||
@ -211,10 +211,10 @@ Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/
|
|||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
+ crypt_ra F
|
+ crypt_ra F
|
||||||
+ crypt_rn F
|
+ crypt_rn F
|
||||||
Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist
|
Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist
|
--- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist
|
||||||
+++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist
|
+++ glibc-2.16/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist
|
||||||
@@ -1,9 +1,21 @@
|
@@ -1,9 +1,21 @@
|
||||||
GLIBC_2.0
|
GLIBC_2.0
|
||||||
GLIBC_2.0 A
|
GLIBC_2.0 A
|
||||||
@ -237,10 +237,10 @@ Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/
|
|||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
+ crypt_ra F
|
+ crypt_ra F
|
||||||
+ crypt_rn F
|
+ crypt_rn F
|
||||||
Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist
|
Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist
|
--- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist
|
||||||
+++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist
|
+++ glibc-2.16/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist
|
||||||
@@ -1,9 +1,21 @@
|
@@ -1,9 +1,21 @@
|
||||||
GLIBC_2.0
|
GLIBC_2.0
|
||||||
GLIBC_2.0 A
|
GLIBC_2.0 A
|
||||||
@ -263,10 +263,10 @@ Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/powerpc/powerpc32/nof
|
|||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
+ crypt_ra F
|
+ crypt_ra F
|
||||||
+ crypt_rn F
|
+ crypt_rn F
|
||||||
Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist
|
Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist
|
--- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist
|
||||||
+++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist
|
+++ glibc-2.16/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist
|
||||||
@@ -1,9 +1,21 @@
|
@@ -1,9 +1,21 @@
|
||||||
GLIBC_2.12
|
GLIBC_2.12
|
||||||
GLIBC_2.12 A
|
GLIBC_2.12 A
|
||||||
@ -289,10 +289,10 @@ Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/
|
|||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
+ crypt_ra F
|
+ crypt_ra F
|
||||||
+ crypt_rn F
|
+ crypt_rn F
|
||||||
Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist
|
Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist
|
--- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist
|
||||||
+++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist
|
+++ glibc-2.16/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist
|
||||||
@@ -1,9 +1,21 @@
|
@@ -1,9 +1,21 @@
|
||||||
GLIBC_2.12
|
GLIBC_2.12
|
||||||
GLIBC_2.12 A
|
GLIBC_2.12 A
|
||||||
@ -315,10 +315,10 @@ Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/
|
|||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
+ crypt_ra F
|
+ crypt_ra F
|
||||||
+ crypt_rn F
|
+ crypt_rn F
|
||||||
Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist
|
Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist
|
--- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist
|
||||||
+++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist
|
+++ glibc-2.16/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist
|
||||||
@@ -1,9 +1,21 @@
|
@@ -1,9 +1,21 @@
|
||||||
GLIBC_2.12
|
GLIBC_2.12
|
||||||
GLIBC_2.12 A
|
GLIBC_2.12 A
|
||||||
|
@ -1,78 +0,0 @@
|
|||||||
Index: glibc-2.15/posix/gai.conf
|
|
||||||
===================================================================
|
|
||||||
--- glibc-2.15.orig/posix/gai.conf
|
|
||||||
+++ glibc-2.15/posix/gai.conf
|
|
||||||
@@ -67,11 +67,66 @@
|
|
||||||
#scopev4 ::ffff:192.168.0.0/112 5
|
|
||||||
#scopev4 ::ffff:0.0.0.0/96 14
|
|
||||||
#
|
|
||||||
-# For sites which use site-local IPv4 addresses behind NAT there is
|
|
||||||
-# the problem that even if IPv4 addresses are preferred they do not
|
|
||||||
-# have the same scope and are therefore not sorted first. To change
|
|
||||||
-# this use only these rules:
|
|
||||||
+# Back in 2003, the sorting algorithm used by getaddrinfo() was defined in RFC
|
|
||||||
+# 3484. However, this document did not take into account (or foresee) the
|
|
||||||
+# ubiquity of IPv4 NAT on today's internet. This in turn causes some real
|
|
||||||
+# operational problems that's hindering the deployment of IPv6 for content
|
|
||||||
+# providers.
|
|
||||||
+#
|
|
||||||
+# The problem scenario is the following:
|
|
||||||
+#
|
|
||||||
+# An end user is located in a network numbered with private (RFC 1918) IPv4
|
|
||||||
+# addresses and transitional 6to4 (RFC 3056) IPv6 addresses. The network is
|
|
||||||
+# connected to the internet by a CPE/SOHO device implementing NAT for IPv4 and
|
|
||||||
+# anycasted 6to4 (RFC 3068) for IPv6.
|
|
||||||
+#
|
|
||||||
+# When the user attempts to connect to a server whose hostname has both IPv4
|
|
||||||
+# and IPv6 addresses published in DNS, an IPv6 connection using the
|
|
||||||
+# transitional 6to4 service will be preferred. This happens because the scope
|
|
||||||
+# comparison fails for IPv4, the RFC 1918 addresses are assumed to have
|
|
||||||
+# site-local scope, which is smaller than the global scope of the server's IPv4
|
|
||||||
+# address. For IPv6, both the server's and the client's (6to4) address have
|
|
||||||
+# global scope.
|
|
||||||
+#
|
|
||||||
+# Unfortunately, the operational reality is that a transitional technique such
|
|
||||||
+# as 6to4 is much less reliable than IPv4. The relay routers might be located
|
|
||||||
+# far away from the optimal IPv4 path, and thus cause a significant latency
|
|
||||||
+# increase, or they might not even work optimally (they're usually operated by
|
|
||||||
+# voulenteering third parties on a best-effort basis), and finally some ISPs
|
|
||||||
+# simply filter away all proto-41 traffic. Transitional techniques are useful
|
|
||||||
+# to give end users with IPv4-only service a real shot at accessing IPv6-only
|
|
||||||
+# content, but it should never be preferred over IPv4 service when accessing
|
|
||||||
+# dual-stacked content.
|
|
||||||
+#
|
|
||||||
+# RFC 3484 even acknowledges this, by saying to "avoid the use of transitional
|
|
||||||
+# addresses when native addresses are available".
|
|
||||||
+#
|
|
||||||
+# An IETF draft document which describes the problem in a much more detailed
|
|
||||||
+# manner than I have is available here:
|
|
||||||
+#
|
|
||||||
+# http://tools.ietf.org/html/draft-denis-v6ops-nat-addrsel-00
|
|
||||||
+#
|
|
||||||
+# There's also an IETF draft that aims to revise RFC 3484 in order to fix this
|
|
||||||
+# problem (amongst others):
|
|
||||||
+#
|
|
||||||
+# http://tools.ietf.org/html/draft-arifumi-6man-rfc3484-revise-02
|
|
||||||
+#
|
|
||||||
+# Quoting from this document:
|
|
||||||
+#
|
|
||||||
+# > 2.7. To change private IPv4 address scope
|
|
||||||
+# >
|
|
||||||
+# > As detailed in Remi's draft [I-D.denis-v6ops-nat-addrsel], when a
|
|
||||||
+# > host is in NATed site, and has a private IPv4 address and
|
|
||||||
+# > transitional addresses like 6to4 and Teredo, the host chooses
|
|
||||||
+# > transitional IPv6 address to access most of the dual-stack servers.
|
|
||||||
+# >
|
|
||||||
+# > This is because private IPv4 address is defined to be site-local
|
|
||||||
+# > scope, and as in RFC 3484, the scope matching rules (Rule 2) set
|
|
||||||
+# > lower priority for private IPv4 address.
|
|
||||||
+# >
|
|
||||||
+# > By changing the address scope of private IPv4 address to global, this
|
|
||||||
+# > problem can be solved.
|
|
||||||
#
|
|
||||||
-#scopev4 ::ffff:169.254.0.0/112 2
|
|
||||||
-#scopev4 ::ffff:127.0.0.0/104 2
|
|
||||||
-#scopev4 ::ffff:0.0.0.0/96 14
|
|
||||||
+scopev4 ::ffff:10.0.0.0/104 14
|
|
||||||
+scopev4 ::ffff:172.16.0.0/108 14
|
|
||||||
+scopev4 ::ffff:192.168.0.0/112 14
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:4afc22409c53c5d55a86fc8e5fc1f029dd7d42d3d19d61b64c98e4110f52c829
|
|
||||||
size 946700
|
|
@ -17,22 +17,22 @@ git diff -R 'fcabc0f8b185f9e0a9289720be5ede6c39b3bf21^!'
|
|||||||
2011-05-12 Ulrich Drepper <drepper@gmail.com>
|
2011-05-12 Ulrich Drepper <drepper@gmail.com>
|
||||||
|
|
||||||
[BZ #12511]
|
[BZ #12511]
|
||||||
Index: glibc-2.15.90/libio/Makefile
|
Index: glibc-2.16.90/libio/Makefile
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.15.90.orig/libio/Makefile
|
--- glibc-2.16.90.orig/libio/Makefile
|
||||||
+++ glibc-2.15.90/libio/Makefile
|
+++ glibc-2.16.90/libio/Makefile
|
||||||
@@ -57,7 +57,7 @@ tests = tst_swprintf tst_wprintf tst_sws
|
@@ -59,7 +59,7 @@ tests = tst_swprintf tst_wprintf tst_sws
|
||||||
tst-memstream1 tst-memstream2 \
|
tst-memstream1 tst-memstream2 \
|
||||||
tst-wmemstream1 tst-wmemstream2 \
|
tst-wmemstream1 tst-wmemstream2 \
|
||||||
bug-memstream1 bug-wmemstream1 \
|
bug-memstream1 bug-wmemstream1 \
|
||||||
- tst-setvbuf1 tst-popen1 tst-fgetwc bug-wsetpos bug-fclose1
|
- tst-setvbuf1 tst-popen1 tst-fgetwc bug-wsetpos bug-fclose1 tst-fseek
|
||||||
+ tst-setvbuf1 tst-popen1 tst-fgetwc bug-wsetpos
|
+ tst-setvbuf1 tst-popen1 tst-fgetwc bug-wsetpos tst-fseek
|
||||||
test-srcs = test-freopen
|
ifeq (yes,$(build-shared))
|
||||||
|
# Add test-fopenloc only if shared library is enabled since it depends on
|
||||||
all: # Make this the default target; it will be defined in Rules.
|
# shared localedata objects.
|
||||||
Index: glibc-2.15.90/libio/bug-fclose1.c
|
Index: glibc-2.16.90/libio/bug-fclose1.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.15.90.orig/libio/bug-fclose1.c
|
--- glibc-2.16.90.orig/libio/bug-fclose1.c
|
||||||
+++ /dev/null
|
+++ /dev/null
|
||||||
@@ -1,132 +0,0 @@
|
@@ -1,132 +0,0 @@
|
||||||
-// BZ #12724
|
-// BZ #12724
|
||||||
@ -167,10 +167,10 @@ Index: glibc-2.15.90/libio/bug-fclose1.c
|
|||||||
-
|
-
|
||||||
- return 0;
|
- return 0;
|
||||||
-}
|
-}
|
||||||
Index: glibc-2.15.90/libio/fileops.c
|
Index: glibc-2.16.90/libio/fileops.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.15.90.orig/libio/fileops.c
|
--- glibc-2.16.90.orig/libio/fileops.c
|
||||||
+++ glibc-2.15.90/libio/fileops.c
|
+++ glibc-2.16.90/libio/fileops.c
|
||||||
@@ -155,21 +155,13 @@ int
|
@@ -155,21 +155,13 @@ int
|
||||||
_IO_new_file_close_it (fp)
|
_IO_new_file_close_it (fp)
|
||||||
_IO_FILE *fp;
|
_IO_FILE *fp;
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
Index: glibc-2.15.90/csu/version.c
|
Index: glibc-2.16.90/csu/version.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.15.90.orig/csu/version.c
|
--- glibc-2.16.90.orig/csu/version.c
|
||||||
+++ glibc-2.15.90/csu/version.c
|
+++ glibc-2.16.90/csu/version.c
|
||||||
@@ -24,11 +24,12 @@ static const char __libc_release[] = REL
|
@@ -24,11 +24,12 @@ static const char __libc_release[] = REL
|
||||||
static const char __libc_version[] = VERSION;
|
static const char __libc_version[] = VERSION;
|
||||||
|
|
||||||
static const char banner[] =
|
static const char banner[] =
|
||||||
-"GNU C Library "RELEASE" release version "VERSION", by Roland McGrath et al.\n\
|
-"GNU C Library "PKGVERSION RELEASE" release version "VERSION", by Roland McGrath et al.\n\
|
||||||
+"GNU C Library "RELEASE" release version "VERSION" ("CVSDATE"), by Roland McGrath et al.\n\
|
+"GNU C Library "PKGVERSION RELEASE" release version "VERSION" (git "GITID"), by Roland McGrath et al.\n\
|
||||||
Copyright (C) 2012 Free Software Foundation, Inc.\n\
|
Copyright (C) 2012 Free Software Foundation, Inc.\n\
|
||||||
This is free software; see the source for copying conditions.\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\
|
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n\
|
||||||
|
@ -1,3 +1,32 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Sun Nov 11 09:54:43 UTC 2012 - aj@suse.de
|
||||||
|
|
||||||
|
- Update to current glibc 2.17 development snapshot (git 7e2bd01fcf3c):
|
||||||
|
* Upstream changes:
|
||||||
|
+ ports is now part of main tarball
|
||||||
|
+ Add port to ARM AArch64
|
||||||
|
+ New function secure_getenv
|
||||||
|
+ Systemtap static probes
|
||||||
|
+ The `clock_*' suite of functions (declared in <time.h>) is now
|
||||||
|
available directly in the main C library.
|
||||||
|
+ The `crypt' function now fails if passed salt bytes that violate the
|
||||||
|
specification for those values. On Linux, the `crypt' function will
|
||||||
|
consult /proc/sys/crypto/fips_enabled to determine if "FIPS mode" is
|
||||||
|
enabled, and fail on encrypted strings using the MD5 or DES algorithm
|
||||||
|
when the mode is enabled.
|
||||||
|
+ Optimzations and bug fixes
|
||||||
|
* remove upstream patches malloc-check-size.patch,
|
||||||
|
glibc-2.16-getaddrinfo-buffer.patch, sparc-bind-now.patch,
|
||||||
|
pthread-cond-wait-revert.patch
|
||||||
|
* Remove now obsolete patch glibc-gai-private4.diff
|
||||||
|
* Refresh patches glibc-2.14-crypt.diff, glibc-2.14-crypt-versioning.diff,
|
||||||
|
glibc-fix-check-abi.patch, nss-db-path.patch, glibc-2.3.90-noversion.diff,
|
||||||
|
glibc-revert-fseek-on-fclose.diff
|
||||||
|
* Disable patches glibc-compiled-binaries.diff, getaddrinfo-ipv6-sanity.diff
|
||||||
|
and glibc-gai-private4.diff.
|
||||||
|
* Use git id instead of ChangeLog date in version output (patch glibc-version.diff)
|
||||||
|
* Enable multi-arch on all architectures that support it.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Wed Nov 7 14:59:06 UTC 2012 - schwab@suse.de
|
Wed Nov 7 14:59:06 UTC 2012 - schwab@suse.de
|
||||||
|
|
||||||
|
38
glibc.spec
38
glibc.spec
@ -119,17 +119,13 @@ Obsoletes: glibc-32bit
|
|||||||
Provides: ld-linux.so.3
|
Provides: ld-linux.so.3
|
||||||
Provides: ld-linux.so.3(GLIBC_2.4)
|
Provides: ld-linux.so.3(GLIBC_2.4)
|
||||||
%endif
|
%endif
|
||||||
Version: 2.16
|
Version: 2.16.90
|
||||||
Release: 0
|
Release: 0
|
||||||
%define glibc_major_version 2.16
|
%define glibc_major_version 2.16.90
|
||||||
%define git_id c3b96f90c9c1
|
%define git_id 7e2bd01fcf3c
|
||||||
%define glibc_ports_ver 2.16
|
|
||||||
%define ports_git_id a20c2b3c87ae
|
|
||||||
Url: http://www.gnu.org/software/libc/libc.html
|
Url: http://www.gnu.org/software/libc/libc.html
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
Source: glibc-%{version}-%{git_id}.tar.xz
|
Source: glibc-%{version}-%{git_id}.tar.xz
|
||||||
%define glibc_ports_dir glibc-ports-%{glibc_ports_ver}
|
|
||||||
Source2: glibc-ports-%{glibc_ports_ver}-%{ports_git_id}.tar.xz
|
|
||||||
Source3: noversion.tar.bz2
|
Source3: noversion.tar.bz2
|
||||||
Source4: manpages.tar.bz2
|
Source4: manpages.tar.bz2
|
||||||
Source5: nsswitch.conf
|
Source5: nsswitch.conf
|
||||||
@ -223,8 +219,6 @@ Patch103: glibc-2.4-china.diff
|
|||||||
### Broken patches in glibc that we revert for now:
|
### Broken patches in glibc that we revert for now:
|
||||||
# PATCH-FIX-OPENSUSE revert seeking on fclose for now bnc#711829 matz@suse.de
|
# PATCH-FIX-OPENSUSE revert seeking on fclose for now bnc#711829 matz@suse.de
|
||||||
Patch201: glibc-revert-fseek-on-fclose.diff
|
Patch201: glibc-revert-fseek-on-fclose.diff
|
||||||
# PATCH-FIX-OPENSUSE revert pthread-cond-wait change since it causes hangs - aj@suse.de
|
|
||||||
Patch202: pthread-cond-wait-revert.patch
|
|
||||||
|
|
||||||
### Network related patches
|
### Network related patches
|
||||||
# PATCH-FIX-OPENSUSE reload /etc/resolv.conf on change
|
# PATCH-FIX-OPENSUSE reload /etc/resolv.conf on change
|
||||||
@ -233,8 +227,6 @@ Patch300: glibc-resolv-reload.diff
|
|||||||
Patch301: glibc-2.2-sunrpc.diff
|
Patch301: glibc-2.2-sunrpc.diff
|
||||||
# PATCH-FIX-OPENSUSE only use ipv6 if real ipv6 address exists bnc#361697, bnc#684534
|
# PATCH-FIX-OPENSUSE only use ipv6 if real ipv6 address exists bnc#361697, bnc#684534
|
||||||
Patch302: getaddrinfo-ipv6-sanity.diff
|
Patch302: getaddrinfo-ipv6-sanity.diff
|
||||||
# PATCH-FIX-OPENSUSE Consider private IPv4 addresses as global-scope in gai.conf [bnc#597616]
|
|
||||||
Patch303: glibc-gai-private4.diff
|
|
||||||
# PATCH-FIX-OPENSUSE Warn about usage of mdns in resolv.conv
|
# PATCH-FIX-OPENSUSE Warn about usage of mdns in resolv.conv
|
||||||
Patch304: glibc-resolv-mdnshint.diff
|
Patch304: glibc-resolv-mdnshint.diff
|
||||||
# PATCH-FIX-OPENSUSE nscd does not account for 'multi on' in /etc/host.conf when ai-resolving host bso#11928
|
# PATCH-FIX-OPENSUSE nscd does not account for 'multi on' in /etc/host.conf when ai-resolving host bso#11928
|
||||||
@ -251,13 +243,6 @@ Patch402: nscd-avoid-gcc-warning.diff
|
|||||||
###
|
###
|
||||||
# Patches from upstream
|
# Patches from upstream
|
||||||
###
|
###
|
||||||
# PATCH-FIX-UPSTREAM Fix malloc_usable_size swo#1349, bnc#745247 - aj@suse.de
|
|
||||||
Patch1001: malloc-check-size.patch
|
|
||||||
|
|
||||||
# PATCH-FIX-UPSTREAM Fix dns buffer - aj@suse.de
|
|
||||||
Patch1021: glibc-2.16-getaddrinfo-buffer.patch
|
|
||||||
# PATCH-FIX-UPSTREAM Fix sparc dynamic linker triggered by bind-now swo#14376 - aj@suse.de
|
|
||||||
Patch1022: sparc-bind-now.patch
|
|
||||||
|
|
||||||
###
|
###
|
||||||
# Patches awaiting upstream approval
|
# Patches awaiting upstream approval
|
||||||
@ -443,7 +428,7 @@ versions of your software.
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -n glibc-%{version} -q -a 2 -a 3 -a 4
|
%setup -n glibc-%{version} -q -a 3 -a 4
|
||||||
# Owl crypt_blowfish
|
# Owl crypt_blowfish
|
||||||
tar -xzf %SOURCE50
|
tar -xzf %SOURCE50
|
||||||
pushd crypt_blowfish-%{crypt_bf_version}
|
pushd crypt_blowfish-%{crypt_bf_version}
|
||||||
@ -471,7 +456,7 @@ rm nscd/s-stamp
|
|||||||
%patch13 -p1
|
%patch13 -p1
|
||||||
%patch14 -p1
|
%patch14 -p1
|
||||||
%patch15 -p1
|
%patch15 -p1
|
||||||
%patch17 -p1
|
#%patch17 -p1
|
||||||
%patch18 -p1
|
%patch18 -p1
|
||||||
%patch21 -p1
|
%patch21 -p1
|
||||||
|
|
||||||
@ -481,12 +466,10 @@ rm nscd/s-stamp
|
|||||||
%patch103 -p1
|
%patch103 -p1
|
||||||
|
|
||||||
%patch201 -p1
|
%patch201 -p1
|
||||||
%patch202 -p1
|
|
||||||
|
|
||||||
%patch300 -p1
|
%patch300 -p1
|
||||||
%patch301 -p1
|
%patch301 -p1
|
||||||
%patch302 -p1
|
#%patch302 -p1
|
||||||
%patch303 -p1
|
|
||||||
%patch304 -p1
|
%patch304 -p1
|
||||||
%patch305 -p1
|
%patch305 -p1
|
||||||
%patch306 -p1
|
%patch306 -p1
|
||||||
@ -497,9 +480,6 @@ rm nscd/s-stamp
|
|||||||
%ifarch armv7l armv7hl
|
%ifarch armv7l armv7hl
|
||||||
%patch20 -p1
|
%patch20 -p1
|
||||||
%endif
|
%endif
|
||||||
%patch1001 -p1
|
|
||||||
%patch1021 -p1
|
|
||||||
%patch1022 -p1
|
|
||||||
|
|
||||||
%patch2001 -p1
|
%patch2001 -p1
|
||||||
# XXX Disable, it breaks the testsuite, test elf/tst-audit2
|
# XXX Disable, it breaks the testsuite, test elf/tst-audit2
|
||||||
@ -557,7 +537,7 @@ nice
|
|||||||
export SUSE_ASNEEDED=0
|
export SUSE_ASNEEDED=0
|
||||||
# Adjust glibc version.h
|
# Adjust glibc version.h
|
||||||
echo "#define CONFHOST \"%{target}\"" >> version.h
|
echo "#define CONFHOST \"%{target}\"" >> version.h
|
||||||
echo "#define CVSDATE \"`date -r ChangeLog +%Y%m%d`\"" >> version.h
|
echo "#define GITID \"%{git_id}\"" >> version.h
|
||||||
#
|
#
|
||||||
# Default CFLAGS and Compiler
|
# Default CFLAGS and Compiler
|
||||||
#
|
#
|
||||||
@ -613,7 +593,7 @@ add_ons=",libidn"
|
|||||||
add_ons=$add_ons,noversion
|
add_ons=$add_ons,noversion
|
||||||
%endif
|
%endif
|
||||||
%ifarch %arm mipsel ia64
|
%ifarch %arm mipsel ia64
|
||||||
add_ons=$add_ons,%glibc_ports_dir
|
add_ons=$add_ons,ports
|
||||||
%endif
|
%endif
|
||||||
%ifarch %arm mipsel
|
%ifarch %arm mipsel
|
||||||
# fails to build otherwise - need to recheck and fix
|
# fails to build otherwise - need to recheck and fix
|
||||||
@ -652,7 +632,7 @@ configure_and_build_glibc() {
|
|||||||
--enable-stackguard-randomization \
|
--enable-stackguard-randomization \
|
||||||
%endif
|
%endif
|
||||||
--build=%{target} --host=%{target} \
|
--build=%{target} --host=%{target} \
|
||||||
%ifarch ppc ppc64 %{ix86} x86_64
|
%ifarch %{ix86} x86_64 sparc sparc64 s390 s390x
|
||||||
--enable-multi-arch \
|
--enable-multi-arch \
|
||||||
%endif
|
%endif
|
||||||
%ifarch mipsel
|
%ifarch mipsel
|
||||||
|
@ -1,176 +0,0 @@
|
|||||||
commit 6ef9cc37f0ea151a54e5c8a19950a6d5b6ff8a96
|
|
||||||
Author: Siddhesh Poyarekar <siddhesh@redhat.com>
|
|
||||||
Date: Wed Sep 5 21:49:00 2012 +0530
|
|
||||||
|
|
||||||
Return requested size for malloc_usable_size when MALLOC_CHECK_ > 0
|
|
||||||
|
|
||||||
[BZ #1349]
|
|
||||||
|
|
||||||
malloc_usable_size returns the usable size in an allocated chunk,
|
|
||||||
which may be >= the requested size. In the case of MALLOC_CHECK_ being
|
|
||||||
exported to > 0 however, only the requested size is usable, since a
|
|
||||||
magic value is written at the end of the request size to trap writes
|
|
||||||
beyond request bounds. Hence, when MALLOC_CHECK_ is exported to > 0,
|
|
||||||
malloc_usable_size() should return the request size.
|
|
||||||
|
|
||||||
2012-09-05 Siddhesh Poyarekar <siddhesh@redhat.com>
|
|
||||||
|
|
||||||
[BZ #1349]
|
|
||||||
* malloc/Makefile (tests): Add tst-malloc-usable test case.
|
|
||||||
(tst-malloc-usable-ENV): Set environment for test case.
|
|
||||||
* malloc/hooks.c (malloc_check_get_size): New function to get
|
|
||||||
requested size.
|
|
||||||
* malloc/malloc.c (musable): Use malloc_check_get_size.
|
|
||||||
* malloc/tst-malloc-usable.c: New test case.
|
|
||||||
|
|
||||||
diff --git a/malloc/Makefile b/malloc/Makefile
|
|
||||||
index 5d6d716..55c675b 100644
|
|
||||||
--- a/malloc/Makefile
|
|
||||||
+++ b/malloc/Makefile
|
|
||||||
@@ -1,5 +1,4 @@
|
|
||||||
-# Copyright (C) 1991-2003, 2005, 2006, 2007, 2009, 2011, 2012
|
|
||||||
-# Free Software Foundation, Inc.
|
|
||||||
+# Copyright (C) 1991-2012 Free Software Foundation, Inc.
|
|
||||||
# This file is part of the GNU C Library.
|
|
||||||
|
|
||||||
# The GNU C Library is free software; you can redistribute it and/or
|
|
||||||
@@ -26,7 +25,7 @@ all:
|
|
||||||
dist-headers := malloc.h
|
|
||||||
headers := $(dist-headers) obstack.h mcheck.h
|
|
||||||
tests := mallocbug tst-malloc tst-valloc tst-calloc tst-obstack \
|
|
||||||
- tst-mallocstate tst-mcheck tst-mallocfork tst-trim1
|
|
||||||
+ tst-mallocstate tst-mcheck tst-mallocfork tst-trim1 tst-malloc-usable
|
|
||||||
test-srcs = tst-mtrace
|
|
||||||
|
|
||||||
routines = malloc morecore mcheck mtrace obstack
|
|
||||||
@@ -116,6 +115,7 @@ endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
tst-mcheck-ENV = MALLOC_CHECK_=3
|
|
||||||
+tst-malloc-usable-ENV = MALLOC_CHECK_=3
|
|
||||||
|
|
||||||
CPPFLAGS-malloc.c += -DPER_THREAD
|
|
||||||
# Uncomment this for test releases. For public releases it is too expensive.
|
|
||||||
diff --git a/malloc/hooks.c b/malloc/hooks.c
|
|
||||||
index 8a34c78..b38dffb 100644
|
|
||||||
--- a/malloc/hooks.c
|
|
||||||
+++ b/malloc/hooks.c
|
|
||||||
@@ -1,5 +1,5 @@
|
|
||||||
/* Malloc implementation for multiple threads without lock contention.
|
|
||||||
- Copyright (C) 2001-2009, 2011, 2012 Free Software Foundation, Inc.
|
|
||||||
+ Copyright (C) 2001-2012 Free Software Foundation, Inc.
|
|
||||||
This file is part of the GNU C Library.
|
|
||||||
Contributed by Wolfram Gloger <wg@malloc.de>, 2001.
|
|
||||||
|
|
||||||
@@ -89,6 +89,35 @@ __malloc_check_init()
|
|
||||||
|
|
||||||
#define MAGICBYTE(p) ( ( ((size_t)p >> 3) ^ ((size_t)p >> 11)) & 0xFF )
|
|
||||||
|
|
||||||
+/* Visualize the chunk as being partitioned into blocks of 256 bytes from the
|
|
||||||
+ highest address of the chunk, downwards. The beginning of each block tells
|
|
||||||
+ us the size of the previous block, up to the actual size of the requested
|
|
||||||
+ memory. Our magic byte is right at the end of the requested size, so we
|
|
||||||
+ must reach it with this iteration, otherwise we have witnessed a memory
|
|
||||||
+ corruption. */
|
|
||||||
+static size_t
|
|
||||||
+malloc_check_get_size(mchunkptr p)
|
|
||||||
+{
|
|
||||||
+ size_t size;
|
|
||||||
+ unsigned char c;
|
|
||||||
+ unsigned char magic = MAGICBYTE(p);
|
|
||||||
+
|
|
||||||
+ assert(using_malloc_checking == 1);
|
|
||||||
+
|
|
||||||
+ for (size = chunksize(p) - 1 + (chunk_is_mmapped(p) ? 0 : SIZE_SZ);
|
|
||||||
+ (c = ((unsigned char*)p)[size]) != magic;
|
|
||||||
+ size -= c) {
|
|
||||||
+ if(c<=0 || size<(c+2*SIZE_SZ)) {
|
|
||||||
+ malloc_printerr(check_action, "malloc_check_get_size: memory corruption",
|
|
||||||
+ chunk2mem(p));
|
|
||||||
+ return 0;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* chunk2mem size. */
|
|
||||||
+ return size - 2*SIZE_SZ;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
/* Instrument a chunk with overrun detector byte(s) and convert it
|
|
||||||
into a user pointer with requested size sz. */
|
|
||||||
|
|
||||||
diff --git a/malloc/malloc.c b/malloc/malloc.c
|
|
||||||
index 0f1796c..bd562df 100644
|
|
||||||
--- a/malloc/malloc.c
|
|
||||||
+++ b/malloc/malloc.c
|
|
||||||
@@ -1,5 +1,5 @@
|
|
||||||
/* Malloc implementation for multiple threads without lock contention.
|
|
||||||
- Copyright (C) 1996-2009, 2010, 2011, 2012 Free Software Foundation, Inc.
|
|
||||||
+ Copyright (C) 1996-2012 Free Software Foundation, Inc.
|
|
||||||
This file is part of the GNU C Library.
|
|
||||||
Contributed by Wolfram Gloger <wg@malloc.de>
|
|
||||||
and Doug Lea <dl@cs.oswego.edu>, 2001.
|
|
||||||
@@ -4563,6 +4563,9 @@ musable(void* mem)
|
|
||||||
mchunkptr p;
|
|
||||||
if (mem != 0) {
|
|
||||||
p = mem2chunk(mem);
|
|
||||||
+
|
|
||||||
+ if (__builtin_expect(using_malloc_checking == 1, 0))
|
|
||||||
+ return malloc_check_get_size(p);
|
|
||||||
if (chunk_is_mmapped(p))
|
|
||||||
return chunksize(p) - 2*SIZE_SZ;
|
|
||||||
else if (inuse(p))
|
|
||||||
diff --git a/malloc/tst-malloc-usable.c b/malloc/tst-malloc-usable.c
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..18decd8
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/malloc/tst-malloc-usable.c
|
|
||||||
@@ -0,0 +1,49 @@
|
|
||||||
+/* Ensure that malloc_usable_size returns the request size with
|
|
||||||
+ MALLOC_CHECK_ exported to a positive value.
|
|
||||||
+
|
|
||||||
+ Copyright (C) 2012 Free Software Foundation, Inc.
|
|
||||||
+ This file is part of the GNU C Library.
|
|
||||||
+
|
|
||||||
+ The GNU C Library is free software; you can redistribute it and/or
|
|
||||||
+ modify it under the terms of the GNU Lesser General Public
|
|
||||||
+ License as published by the Free Software Foundation; either
|
|
||||||
+ version 2.1 of the License, or (at your option) any later version.
|
|
||||||
+
|
|
||||||
+ The GNU C Library is distributed in the hope that it will be useful,
|
|
||||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
+ Lesser General Public License for more details.
|
|
||||||
+
|
|
||||||
+ You should have received a copy of the GNU Lesser General Public
|
|
||||||
+ License along with the GNU C Library; if not, see
|
|
||||||
+ <http://www.gnu.org/licenses/>. */
|
|
||||||
+
|
|
||||||
+#include <malloc.h>
|
|
||||||
+#include <string.h>
|
|
||||||
+#include <stdio.h>
|
|
||||||
+
|
|
||||||
+static int
|
|
||||||
+do_test (void)
|
|
||||||
+{
|
|
||||||
+ size_t usable_size;
|
|
||||||
+ void *p = malloc (7);
|
|
||||||
+ if (!p)
|
|
||||||
+ {
|
|
||||||
+ printf ("memory allocation failed\n");
|
|
||||||
+ return 1;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ usable_size = malloc_usable_size (p);
|
|
||||||
+ if (usable_size != 7)
|
|
||||||
+ {
|
|
||||||
+ printf ("malloc_usable_size: expected 7 but got %zu\n", usable_size);
|
|
||||||
+ return 1;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ memset (p, 0, usable_size);
|
|
||||||
+ free (p);
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#define TEST_FUNCTION do_test ()
|
|
||||||
+#include "../test-skeleton.c"
|
|
@ -1,9 +1,9 @@
|
|||||||
Use /var/db for nss_db
|
Use /var/db for nss_db
|
||||||
|
|
||||||
Index: glibc-2.15.90/nss/db-Makefile
|
Index: glibc-2.16.90/nss/db-Makefile
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.15.90.orig/nss/db-Makefile
|
--- glibc-2.16.90.orig/nss/db-Makefile
|
||||||
+++ glibc-2.15.90/nss/db-Makefile
|
+++ glibc-2.16.90/nss/db-Makefile
|
||||||
@@ -22,7 +22,7 @@ DATABASES = $(wildcard /etc/passwd /etc/
|
@@ -22,7 +22,7 @@ DATABASES = $(wildcard /etc/passwd /etc/
|
||||||
/etc/rpc /etc/services /etc/shadow /etc/gshadow \
|
/etc/rpc /etc/services /etc/shadow /etc/gshadow \
|
||||||
/etc/netgroup)
|
/etc/netgroup)
|
||||||
@ -13,10 +13,10 @@ Index: glibc-2.15.90/nss/db-Makefile
|
|||||||
|
|
||||||
AWK = awk
|
AWK = awk
|
||||||
MAKEDB = makedb --quiet
|
MAKEDB = makedb --quiet
|
||||||
Index: glibc-2.15.90/sysdeps/unix/sysv/linux/paths.h
|
Index: glibc-2.16.90/sysdeps/unix/sysv/linux/paths.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.15.90.orig/sysdeps/unix/sysv/linux/paths.h
|
--- glibc-2.16.90.orig/sysdeps/unix/sysv/linux/paths.h
|
||||||
+++ glibc-2.15.90/sysdeps/unix/sysv/linux/paths.h
|
+++ glibc-2.16.90/sysdeps/unix/sysv/linux/paths.h
|
||||||
@@ -68,7 +68,7 @@
|
@@ -68,7 +68,7 @@
|
||||||
/* Provide trailing slash, since mostly used for building pathnames. */
|
/* Provide trailing slash, since mostly used for building pathnames. */
|
||||||
#define _PATH_DEV "/dev/"
|
#define _PATH_DEV "/dev/"
|
||||||
@ -26,11 +26,11 @@ Index: glibc-2.15.90/sysdeps/unix/sysv/linux/paths.h
|
|||||||
#define _PATH_VARRUN "/var/run/"
|
#define _PATH_VARRUN "/var/run/"
|
||||||
#define _PATH_VARTMP "/var/tmp/"
|
#define _PATH_VARTMP "/var/tmp/"
|
||||||
|
|
||||||
Index: glibc-2.15.90/Makeconfig
|
Index: glibc-2.16.90/Makeconfig
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.15.90.orig/Makeconfig
|
--- glibc-2.16.90.orig/Makeconfig
|
||||||
+++ glibc-2.15.90/Makeconfig
|
+++ glibc-2.16.90/Makeconfig
|
||||||
@@ -287,7 +287,7 @@ inst_sysconfdir = $(install_root)$(sysco
|
@@ -250,7 +250,7 @@ inst_sysconfdir = $(install_root)$(sysco
|
||||||
|
|
||||||
# Directory for the database files and Makefile for nss_db.
|
# Directory for the database files and Makefile for nss_db.
|
||||||
ifndef vardbdir
|
ifndef vardbdir
|
||||||
|
@ -1,244 +0,0 @@
|
|||||||
http://sourceware.org/ml/libc-alpha/2012-01/msg00002.html
|
|
||||||
|
|
||||||
The following patch:
|
|
||||||
Has been reported as causing numerous problems in Fedora & Debian. I
|
|
||||||
don't think anyone has done any serious analysis of the issue, but the
|
|
||||||
patch has been pulled from both distributions because of the
|
|
||||||
instability it's introduced.
|
|
||||||
|
|
||||||
https://bugzilla.redhat.com/show_bug.cgi?id=769421
|
|
||||||
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=651899
|
|
||||||
|
|
||||||
|
|
||||||
commit c5a0802a682dba23f92d47f0f99775aebfbe2539
|
|
||||||
Author: Andreas Schwab <schwab@redhat.com>
|
|
||||||
Date: Mon Nov 28 13:38:19 2011 +0100
|
|
||||||
|
|
||||||
Handle EAGAIN from FUTEX_WAIT_REQUEUE_PI
|
|
||||||
|
|
||||||
2011-11-28 Andreas Schwab <schwab@redhat.com>
|
|
||||||
|
|
||||||
* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Handle
|
|
||||||
EAGAIN from FUTEX_WAIT_REQUEUE_PI.
|
|
||||||
* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
|
|
||||||
|
|
||||||
|
|
||||||
Index: glibc-2.15.90/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
|
|
||||||
===================================================================
|
|
||||||
--- glibc-2.15.90.orig/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
|
|
||||||
+++ glibc-2.15.90/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
|
|
||||||
@@ -136,7 +136,6 @@ __pthread_cond_wait:
|
|
||||||
cmpl $PI_BIT, %eax
|
|
||||||
jne 18f
|
|
||||||
|
|
||||||
-90:
|
|
||||||
movl $(FUTEX_WAIT_REQUEUE_PI|FUTEX_PRIVATE_FLAG), %ecx
|
|
||||||
movl %ebp, %edx
|
|
||||||
xorl %esi, %esi
|
|
||||||
@@ -150,9 +149,6 @@ __pthread_cond_wait:
|
|
||||||
sete 16(%esp)
|
|
||||||
je 19f
|
|
||||||
|
|
||||||
- cmpl $-EAGAIN, %eax
|
|
||||||
- je 91f
|
|
||||||
-
|
|
||||||
/* Normal and PI futexes dont mix. Use normal futex functions only
|
|
||||||
if the kernel does not support the PI futex functions. */
|
|
||||||
cmpl $-ENOSYS, %eax
|
|
||||||
@@ -397,78 +393,6 @@ __pthread_cond_wait:
|
|
||||||
#endif
|
|
||||||
call __lll_unlock_wake
|
|
||||||
jmp 11b
|
|
||||||
-
|
|
||||||
-91:
|
|
||||||
-.LcleanupSTART2:
|
|
||||||
- /* FUTEX_WAIT_REQUEUE_PI returned EAGAIN. We need to
|
|
||||||
- call it again. */
|
|
||||||
-
|
|
||||||
- /* Get internal lock. */
|
|
||||||
- movl $1, %edx
|
|
||||||
- xorl %eax, %eax
|
|
||||||
- LOCK
|
|
||||||
-#if cond_lock == 0
|
|
||||||
- cmpxchgl %edx, (%ebx)
|
|
||||||
-#else
|
|
||||||
- cmpxchgl %edx, cond_lock(%ebx)
|
|
||||||
-#endif
|
|
||||||
- jz 92f
|
|
||||||
-
|
|
||||||
-#if cond_lock == 0
|
|
||||||
- movl %ebx, %edx
|
|
||||||
-#else
|
|
||||||
- leal cond_lock(%ebx), %edx
|
|
||||||
-#endif
|
|
||||||
-#if (LLL_SHARED-LLL_PRIVATE) > 255
|
|
||||||
- xorl %ecx, %ecx
|
|
||||||
-#endif
|
|
||||||
- cmpl $-1, dep_mutex(%ebx)
|
|
||||||
- setne %cl
|
|
||||||
- subl $1, %ecx
|
|
||||||
- andl $(LLL_SHARED-LLL_PRIVATE), %ecx
|
|
||||||
-#if LLL_PRIVATE != 0
|
|
||||||
- addl $LLL_PRIVATE, %ecx
|
|
||||||
-#endif
|
|
||||||
- call __lll_lock_wait
|
|
||||||
-
|
|
||||||
-92:
|
|
||||||
- /* Increment the cond_futex value again, so it can be used as a new
|
|
||||||
- expected value. */
|
|
||||||
- addl $1, cond_futex(%ebx)
|
|
||||||
- movl cond_futex(%ebx), %ebp
|
|
||||||
-
|
|
||||||
- /* Unlock. */
|
|
||||||
- LOCK
|
|
||||||
-#if cond_lock == 0
|
|
||||||
- subl $1, (%ebx)
|
|
||||||
-#else
|
|
||||||
- subl $1, cond_lock(%ebx)
|
|
||||||
-#endif
|
|
||||||
- je 93f
|
|
||||||
-#if cond_lock == 0
|
|
||||||
- movl %ebx, %eax
|
|
||||||
-#else
|
|
||||||
- leal cond_lock(%ebx), %eax
|
|
||||||
-#endif
|
|
||||||
-#if (LLL_SHARED-LLL_PRIVATE) > 255
|
|
||||||
- xorl %ecx, %ecx
|
|
||||||
-#endif
|
|
||||||
- cmpl $-1, dep_mutex(%ebx)
|
|
||||||
- setne %cl
|
|
||||||
- subl $1, %ecx
|
|
||||||
- andl $(LLL_SHARED-LLL_PRIVATE), %ecx
|
|
||||||
-#if LLL_PRIVATE != 0
|
|
||||||
- addl $LLL_PRIVATE, %ecx
|
|
||||||
-#endif
|
|
||||||
- call __lll_unlock_wake
|
|
||||||
-
|
|
||||||
-93:
|
|
||||||
- /* Set the rest of SYS_futex args for FUTEX_WAIT_REQUEUE_PI. */
|
|
||||||
- xorl %ecx, %ecx
|
|
||||||
- movl dep_mutex(%ebx), %edi
|
|
||||||
- jmp 90b
|
|
||||||
-.LcleanupEND2:
|
|
||||||
-
|
|
||||||
.size __pthread_cond_wait, .-__pthread_cond_wait
|
|
||||||
versioned_symbol (libpthread, __pthread_cond_wait, pthread_cond_wait,
|
|
||||||
GLIBC_2_3_2)
|
|
||||||
@@ -641,10 +565,6 @@ __condvar_w_cleanup:
|
|
||||||
.long .LcleanupEND-.Lsub_cond_futex
|
|
||||||
.long __condvar_w_cleanup-.LSTARTCODE
|
|
||||||
.uleb128 0
|
|
||||||
- .long .LcleanupSTART2-.LSTARTCODE
|
|
||||||
- .long .LcleanupEND2-.LcleanupSTART2
|
|
||||||
- .long __condvar_w_cleanup-.LSTARTCODE
|
|
||||||
- .uleb128 0
|
|
||||||
.long .LcallUR-.LSTARTCODE
|
|
||||||
.long .LENDCODE-.LcallUR
|
|
||||||
.long 0
|
|
||||||
Index: glibc-2.15.90/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
|
|
||||||
===================================================================
|
|
||||||
--- glibc-2.15.90.orig/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
|
|
||||||
+++ glibc-2.15.90/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
|
|
||||||
@@ -136,14 +136,11 @@ __pthread_cond_wait:
|
|
||||||
cmpl $PI_BIT, %eax
|
|
||||||
jne 61f
|
|
||||||
|
|
||||||
-90:
|
|
||||||
movl $(FUTEX_WAIT_REQUEUE_PI|FUTEX_PRIVATE_FLAG), %esi
|
|
||||||
movl $SYS_futex, %eax
|
|
||||||
syscall
|
|
||||||
|
|
||||||
movl $1, %r8d
|
|
||||||
- cmpq $-EAGAIN, %rax
|
|
||||||
- je 91f
|
|
||||||
#ifdef __ASSUME_REQUEUE_PI
|
|
||||||
jmp 62f
|
|
||||||
#else
|
|
||||||
@@ -331,69 +328,6 @@ __pthread_cond_wait:
|
|
||||||
13: movq %r10, %rax
|
|
||||||
jmp 14b
|
|
||||||
|
|
||||||
-91:
|
|
||||||
-.LcleanupSTART2:
|
|
||||||
- /* FUTEX_WAIT_REQUEUE_PI returned EAGAIN. We need to
|
|
||||||
- call it again. */
|
|
||||||
- movq 8(%rsp), %rdi
|
|
||||||
-
|
|
||||||
- /* Get internal lock. */
|
|
||||||
- movl $1, %esi
|
|
||||||
- xorl %eax, %eax
|
|
||||||
- LOCK
|
|
||||||
-#if cond_lock == 0
|
|
||||||
- cmpxchgl %esi, (%rdi)
|
|
||||||
-#else
|
|
||||||
- cmpxchgl %esi, cond_lock(%rdi)
|
|
||||||
-#endif
|
|
||||||
- jz 92f
|
|
||||||
-
|
|
||||||
-#if cond_lock != 0
|
|
||||||
- addq $cond_lock, %rdi
|
|
||||||
-#endif
|
|
||||||
- LP_OP(cmp) $-1, dep_mutex-cond_lock(%rdi)
|
|
||||||
- movl $LLL_PRIVATE, %eax
|
|
||||||
- movl $LLL_SHARED, %esi
|
|
||||||
- cmovne %eax, %esi
|
|
||||||
- callq __lll_lock_wait
|
|
||||||
-#if cond_lock != 0
|
|
||||||
- subq $cond_lock, %rdi
|
|
||||||
-#endif
|
|
||||||
-92:
|
|
||||||
- /* Increment the cond_futex value again, so it can be used as a new
|
|
||||||
- expected value. */
|
|
||||||
- incl cond_futex(%rdi)
|
|
||||||
- movl cond_futex(%rdi), %edx
|
|
||||||
-
|
|
||||||
- /* Release internal lock. */
|
|
||||||
- LOCK
|
|
||||||
-#if cond_lock == 0
|
|
||||||
- decl (%rdi)
|
|
||||||
-#else
|
|
||||||
- decl cond_lock(%rdi)
|
|
||||||
-#endif
|
|
||||||
- jz 93f
|
|
||||||
-
|
|
||||||
-#if cond_lock != 0
|
|
||||||
- addq $cond_lock, %rdi
|
|
||||||
-#endif
|
|
||||||
- LP_OP(cmp) $-1, dep_mutex-cond_lock(%rdi)
|
|
||||||
- movl $LLL_PRIVATE, %eax
|
|
||||||
- movl $LLL_SHARED, %esi
|
|
||||||
- cmovne %eax, %esi
|
|
||||||
- /* The call preserves %rdx. */
|
|
||||||
- callq __lll_unlock_wake
|
|
||||||
-#if cond_lock != 0
|
|
||||||
- subq $cond_lock, %rdi
|
|
||||||
-#endif
|
|
||||||
-93:
|
|
||||||
- /* Set the rest of SYS_futex args for FUTEX_WAIT_REQUEUE_PI. */
|
|
||||||
- xorq %r10, %r10
|
|
||||||
- mov dep_mutex(%rdi), %R8_LP
|
|
||||||
- leaq cond_futex(%rdi), %rdi
|
|
||||||
- jmp 90b
|
|
||||||
-.LcleanupEND2:
|
|
||||||
-
|
|
||||||
.size __pthread_cond_wait, .-__pthread_cond_wait
|
|
||||||
versioned_symbol (libpthread, __pthread_cond_wait, pthread_cond_wait,
|
|
||||||
GLIBC_2_3_2)
|
|
||||||
@@ -546,15 +480,11 @@ __condvar_cleanup1:
|
|
||||||
.uleb128 .LcleanupSTART-.LSTARTCODE
|
|
||||||
.uleb128 .LcleanupEND-.LcleanupSTART
|
|
||||||
.uleb128 __condvar_cleanup1-.LSTARTCODE
|
|
||||||
- .uleb128 0
|
|
||||||
- .uleb128 .LcleanupSTART2-.LSTARTCODE
|
|
||||||
- .uleb128 .LcleanupEND2-.LcleanupSTART2
|
|
||||||
- .uleb128 __condvar_cleanup1-.LSTARTCODE
|
|
||||||
- .uleb128 0
|
|
||||||
+ .uleb128 0
|
|
||||||
.uleb128 .LcallUR-.LSTARTCODE
|
|
||||||
.uleb128 .LENDCODE-.LcallUR
|
|
||||||
.uleb128 0
|
|
||||||
- .uleb128 0
|
|
||||||
+ .uleb128 0
|
|
||||||
.Lcstend:
|
|
||||||
|
|
||||||
|
|
@ -1,31 +0,0 @@
|
|||||||
commit aa9bbfe6a79fce593ab3d298bb0e880d77eb7f71
|
|
||||||
Author: David S. Miller <davem@davemloft.net>
|
|
||||||
Date: Thu Sep 27 21:33:54 2012 -0700
|
|
||||||
|
|
||||||
Fix sparc64 crashes with LD_BIND_NOW and --enable-bind-now.
|
|
||||||
|
|
||||||
[BZ #14376]
|
|
||||||
* sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela): Do not
|
|
||||||
pass reloc->r_addend in as the 'high' argument to
|
|
||||||
sparc64_fixup_plt when handling R_SPARC_JMP_IREL relocations.
|
|
||||||
|
|
||||||
diff --git a/sysdeps/sparc/sparc64/dl-machine.h b/sysdeps/sparc/sparc64/dl-machine.h
|
|
||||||
index 35c24d1..2f8bbe1 100644
|
|
||||||
--- a/sysdeps/sparc/sparc64/dl-machine.h
|
|
||||||
+++ b/sysdeps/sparc/sparc64/dl-machine.h
|
|
||||||
@@ -458,7 +458,14 @@ elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc,
|
|
||||||
break;
|
|
||||||
case R_SPARC_JMP_IREL:
|
|
||||||
value = ((Elf64_Addr (*) (int)) value) (GLRO(dl_hwcap));
|
|
||||||
- /* Fall thru */
|
|
||||||
+ /* 'high' is always zero, for large PLT entries the linker
|
|
||||||
+ emits an R_SPARC_IRELATIVE. */
|
|
||||||
+#ifdef RESOLVE_CONFLICT_FIND_MAP
|
|
||||||
+ sparc64_fixup_plt (NULL, reloc, reloc_addr, value, 0, 0);
|
|
||||||
+#else
|
|
||||||
+ sparc64_fixup_plt (map, reloc, reloc_addr, value, 0, 0);
|
|
||||||
+#endif
|
|
||||||
+ break;
|
|
||||||
case R_SPARC_JMP_SLOT:
|
|
||||||
#ifdef RESOLVE_CONFLICT_FIND_MAP
|
|
||||||
/* R_SPARC_JMP_SLOT conflicts against .plt[32768+]
|
|
Loading…
Reference in New Issue
Block a user