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