From 335206256c84eaefab082284523e5b8f89fcffb2 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Thu, 16 Apr 2009 16:36:55 +0000 Subject: Updated to fedora-glibc-20090416T1610 --- ChangeLog | 10 ++++++++++ elf/dl-open.c | 3 ++- fedora/branch.mk | 4 ++-- fedora/glibc.spec.in | 6 +++++- resolv/res_send.c | 4 +++- 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 + + * 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 + + * resolv/res_send.c (send_dg): Don't switch into single-request + mode if we already are in it. + 2009-04-15 Ulrich Drepper * 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 2.9.90-19 +- update from trunk + - fix dlopen from statically linked binaries (#495830) + * Thu Apr 16 2009 Jakub Jelinek 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 -- cgit v1.2.3