Accepting request 142317 from Base:System

Really remove glibc-compiled-binaries.diff (forwarded request 142316 from a_jaeger)

OBS-URL: https://build.opensuse.org/request/show/142317
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=125
This commit is contained in:
Stephan Kulow 2012-11-22 15:12:48 +00:00 committed by Git OBS Bridge
commit 84b0fefdee
19 changed files with 167 additions and 852 deletions

View File

@ -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;

View File

@ -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

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:20d50dad9b65e8ed9936825f71a5cd6dc45f5cdefecd76290b4f744a1ed1e5f1
size 10145504

View File

@ -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
{

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:06e746e24a1b764fe87c9143db6666fad6a0c1135c400f56f63a8e243880d5fd
size 11138300

View File

@ -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 <stdio.h>
+#include <ctype.h>
#include <errno.h>
+#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
@@ -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)
{

View File

@ -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
}
}

View File

@ -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 \

View File

@ -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

View File

@ -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

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4afc22409c53c5d55a86fc8e5fc1f029dd7d42d3d19d61b64c98e4110f52c829
size 946700

View File

@ -17,22 +17,22 @@ git diff -R 'fcabc0f8b185f9e0a9289720be5ede6c39b3bf21^!'
2011-05-12 Ulrich Drepper <drepper@gmail.com>
[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;

View File

@ -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\

View File

@ -1,3 +1,42 @@
-------------------------------------------------------------------
Tue Nov 20 08:06:49 UTC 2012 - aj@suse.de
- Update to f59cba71d848:
* Various bug fixes
* Add new locales szl_PL, ayc_PE, nhn_MX, doi_IN, mni_IN, sat_IN.
* Remove patch glibc-compiled-binaries.diff since getconf can not be
cross-compiled
* Refresh patch glibc-2.3.90-bindresvport.blacklist.diff
-------------------------------------------------------------------
Sun Nov 11 09:54:43 UTC 2012 - aj@suse.de
- Update to current glibc 2.17 development snapshot (git 7e2bd01fcf3c):
* Upstream changes:
+ ports is now part of main tarball
+ Add port to ARM AArch64
+ New function secure_getenv
+ Systemtap static probes
+ The `clock_*' suite of functions (declared in <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

View File

@ -119,17 +119,13 @@ Obsoletes: glibc-32bit
Provides: ld-linux.so.3
Provides: ld-linux.so.3(GLIBC_2.4)
%endif
Version: 2.16
Version: 2.16.90
Release: 0
%define glibc_major_version 2.16
%define git_id c3b96f90c9c1
%define glibc_ports_ver 2.16
%define ports_git_id a20c2b3c87ae
%define glibc_major_version 2.16.90
%define git_id f59cba71d848
Url: http://www.gnu.org/software/libc/libc.html
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source: glibc-%{version}-%{git_id}.tar.xz
%define glibc_ports_dir glibc-ports-%{glibc_ports_ver}
Source2: glibc-ports-%{glibc_ports_ver}-%{ports_git_id}.tar.xz
Source3: noversion.tar.bz2
Source4: manpages.tar.bz2
Source5: nsswitch.conf
@ -201,8 +197,6 @@ Patch13: glibc-2.3.2.no_archive.diff
Patch14: glibc-2.3.90-bindresvport.blacklist.diff
# PATCH-FIX-OPENSUSE prefer -lang rpm packages
Patch15: glibc-2.3.90-langpackdir.diff
# PATCH-FIX-OPENSUSE add option --enable-runbinaries to disable running of compiled binaries
Patch17: glibc-compiled-binaries.diff
# PATCH-FEATURE-SLE increase cpusetsize to 4096, needs to be kept for compatibility kukuk@suse.de (XXX: Review)
Patch18: glibc-cpusetsize.diff
# PATCH-FIX-OPENSUSE Allow ARM binaries with old linker path to run - aj@suse.de
@ -223,8 +217,6 @@ Patch103: glibc-2.4-china.diff
### Broken patches in glibc that we revert for now:
# PATCH-FIX-OPENSUSE revert seeking on fclose for now bnc#711829 matz@suse.de
Patch201: glibc-revert-fseek-on-fclose.diff
# PATCH-FIX-OPENSUSE revert pthread-cond-wait change since it causes hangs - aj@suse.de
Patch202: pthread-cond-wait-revert.patch
### Network related patches
# PATCH-FIX-OPENSUSE reload /etc/resolv.conf on change
@ -233,8 +225,6 @@ Patch300: glibc-resolv-reload.diff
Patch301: glibc-2.2-sunrpc.diff
# PATCH-FIX-OPENSUSE only use ipv6 if real ipv6 address exists bnc#361697, bnc#684534
Patch302: getaddrinfo-ipv6-sanity.diff
# PATCH-FIX-OPENSUSE Consider private IPv4 addresses as global-scope in gai.conf [bnc#597616]
Patch303: glibc-gai-private4.diff
# PATCH-FIX-OPENSUSE Warn about usage of mdns in resolv.conv
Patch304: glibc-resolv-mdnshint.diff
# PATCH-FIX-OPENSUSE nscd does not account for 'multi on' in /etc/host.conf when ai-resolving host bso#11928
@ -251,13 +241,6 @@ Patch402: nscd-avoid-gcc-warning.diff
###
# Patches from upstream
###
# PATCH-FIX-UPSTREAM Fix malloc_usable_size swo#1349, bnc#745247 - aj@suse.de
Patch1001: malloc-check-size.patch
# PATCH-FIX-UPSTREAM Fix dns buffer - aj@suse.de
Patch1021: glibc-2.16-getaddrinfo-buffer.patch
# PATCH-FIX-UPSTREAM Fix sparc dynamic linker triggered by bind-now swo#14376 - aj@suse.de
Patch1022: sparc-bind-now.patch
###
# Patches awaiting upstream approval
@ -443,7 +426,7 @@ versions of your software.
%endif
%prep
%setup -n glibc-%{version} -q -a 2 -a 3 -a 4
%setup -n glibc-%{version} -q -a 3 -a 4
# Owl crypt_blowfish
tar -xzf %SOURCE50
pushd crypt_blowfish-%{crypt_bf_version}
@ -471,7 +454,6 @@ rm nscd/s-stamp
%patch13 -p1
%patch14 -p1
%patch15 -p1
%patch17 -p1
%patch18 -p1
%patch21 -p1
@ -481,12 +463,10 @@ rm nscd/s-stamp
%patch103 -p1
%patch201 -p1
%patch202 -p1
%patch300 -p1
%patch301 -p1
%patch302 -p1
%patch303 -p1
#%patch302 -p1
%patch304 -p1
%patch305 -p1
%patch306 -p1
@ -497,9 +477,6 @@ rm nscd/s-stamp
%ifarch armv7l armv7hl
%patch20 -p1
%endif
%patch1001 -p1
%patch1021 -p1
%patch1022 -p1
%patch2001 -p1
# XXX Disable, it breaks the testsuite, test elf/tst-audit2
@ -557,7 +534,7 @@ nice
export SUSE_ASNEEDED=0
# Adjust glibc version.h
echo "#define CONFHOST \"%{target}\"" >> version.h
echo "#define CVSDATE \"`date -r ChangeLog +%Y%m%d`\"" >> version.h
echo "#define GITID \"%{git_id}\"" >> version.h
#
# Default CFLAGS and Compiler
#
@ -613,7 +590,7 @@ add_ons=",libidn"
add_ons=$add_ons,noversion
%endif
%ifarch %arm mipsel ia64
add_ons=$add_ons,%glibc_ports_dir
add_ons=$add_ons,ports
%endif
%ifarch %arm mipsel
# fails to build otherwise - need to recheck and fix
@ -652,7 +629,7 @@ configure_and_build_glibc() {
--enable-stackguard-randomization \
%endif
--build=%{target} --host=%{target} \
%ifarch ppc ppc64 %{ix86} x86_64
%ifarch %{ix86} x86_64 sparc sparc64 s390 s390x
--enable-multi-arch \
%endif
%ifarch mipsel
@ -700,11 +677,11 @@ configure_and_build_glibc() {
%endif
; do
configure_and_build_glibc $pcpu "$BuildFlags -mcpu=$pcpu" "$add_ons" \
--with-cpu=$pcpu --disable-runbinaries
--with-cpu=$pcpu
done
# Eventually, special Cell variant:
%if %{powerpc_optimize_cpu_cell}
configure_and_build_glibc ppc-cell-be "$BuildFlags -mcpu=cell" "$add_ons" --disable-runbinaries
configure_and_build_glibc ppc-cell-be "$BuildFlags -mcpu=cell" "$add_ons"
%endif
%endif # optimize_power

View File

@ -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"

View File

@ -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

View File

@ -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:

View File

@ -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+]