about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2009-04-16 16:36:55 +0000
committerJakub Jelinek <jakub@redhat.com>2009-04-16 16:36:55 +0000
commit335206256c84eaefab082284523e5b8f89fcffb2 (patch)
tree0b7b60950c6f87c1e331fd771ab2a8bc747edbdc
parent66f8b81220a9afb6405e2714eff1edb0eab2c783 (diff)
downloadglibc-335206256c84eaefab082284523e5b8f89fcffb2.tar.gz
glibc-335206256c84eaefab082284523e5b8f89fcffb2.tar.xz
glibc-335206256c84eaefab082284523e5b8f89fcffb2.zip
Updated to fedora-glibc-20090416T1610 cvs/fedora-glibc-2_9_90-19
-rw-r--r--ChangeLog10
-rw-r--r--elf/dl-open.c3
-rw-r--r--fedora/branch.mk4
-rw-r--r--fedora/glibc.spec.in6
-rw-r--r--resolv/res_send.c4
5 files changed, 22 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 37ee696fda..bbe8284c45 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2009-04-16  Jakub Jelinek  <jakub@redhat.com>
+
+	* elf/dl-open.c (_dl_open): Bump GL(dl_nns) to 1 if no libraries
+	are dlopened in statically linked program even for __LM_ID_CALLER.
+
+2009-04-16  Ulrich Drepper  <drepper@redhat.com>
+
+	* resolv/res_send.c (send_dg): Don't switch into single-request
+	mode if we already are in it.
+
 2009-04-15  Ulrich Drepper  <drepper@redhat.com>
 
 	* sysdeps/unix/sysv/linux/getsysstats.c (next_line): Make sure there
diff --git a/elf/dl-open.c b/elf/dl-open.c
index 3799669cee..458cf0cd13 100644
--- a/elf/dl-open.c
+++ b/elf/dl-open.c
@@ -580,7 +580,8 @@ no more namespaces available for dlmopen()"));
     _dl_signal_error (EINVAL, file, NULL,
 		      N_("invalid target namespace in dlmopen()"));
 #ifndef SHARED
-  else if (nsid == LM_ID_BASE && GL(dl_ns)[LM_ID_BASE]._ns_loaded == NULL
+  else if ((nsid == LM_ID_BASE || nsid == __LM_ID_CALLER)
+	   && GL(dl_ns)[LM_ID_BASE]._ns_loaded == NULL
 	   && GL(dl_nns) == 0)
     GL(dl_nns) = 1;
 #endif
diff --git a/fedora/branch.mk b/fedora/branch.mk
index d8505286dd..253166a762 100644
--- a/fedora/branch.mk
+++ b/fedora/branch.mk
@@ -3,5 +3,5 @@ glibc-branch := fedora
 glibc-base := HEAD
 DIST_BRANCH := devel
 COLLECTION := dist-f8
-fedora-sync-date := 2009-04-16 06:10 UTC
-fedora-sync-tag := fedora-glibc-20090416T0610
+fedora-sync-date := 2009-04-16 16:10 UTC
+fedora-sync-tag := fedora-glibc-20090416T1610
diff --git a/fedora/glibc.spec.in b/fedora/glibc.spec.in
index 93e24c9240..85bcd04cc6 100644
--- a/fedora/glibc.spec.in
+++ b/fedora/glibc.spec.in
@@ -19,7 +19,7 @@
 Summary: The GNU libc libraries
 Name: glibc
 Version: @glibcversion@
-Release: 18
+Release: 19
 # GPLv2+ is used in a bunch of programs, LGPLv2+ is used for libraries.
 # Things that are linked directly into dynamically linked programs
 # and shared libraries (e.g. crt files, lib*_nonshared.a) have an additional
@@ -1009,6 +1009,10 @@ rm -f *.filelist*
 %endif
 
 %changelog
+* Thu Apr 16 2009 Jakub Jelinek <jakub@redhat.com> 2.9.90-19
+- update from trunk
+  - fix dlopen from statically linked binaries (#495830)
+
 * Thu Apr 16 2009 Jakub Jelinek <jakub@redhat.com> 2.9.90-18
 - update from trunk
   - fix fallocate
diff --git a/resolv/res_send.c b/resolv/res_send.c
index 0490b52fca..a339c2be51 100644
--- a/resolv/res_send.c
+++ b/resolv/res_send.c
@@ -1048,7 +1048,9 @@ send_dg(res_state statp,
 	}
 	if (n == 0) {
 		Dprint(statp->options & RES_DEBUG, (stdout, ";; timeout\n"));
-		if (resplen > 1 && (recvresp1 || (buf2 != NULL && recvresp2)))
+		if (!single_request
+		    && resplen > 1
+		    && (recvresp1 || (buf2 != NULL && recvresp2)))
 		  {
 		    /* There are quite a few broken name servers out
 		       there which don't handle two outstanding