GNU C Library master sources branch, master, updated. glibc-2.12-67-g5dbc3b6

roland@sourceware.org roland@sourceware.org
Wed Jul 21 02:10:00 GMT 2010


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  5dbc3b6cc0b759bf4b22d851ccb9cbf3e3cbc6ef (commit)
      from  d02dc4ba087255c30a899ab21bd8503efb52ddcf (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=5dbc3b6cc0b759bf4b22d851ccb9cbf3e3cbc6ef

commit 5dbc3b6cc0b759bf4b22d851ccb9cbf3e3cbc6ef
Author: Roland McGrath <roland@redhat.com>
Date:   Tue Jul 20 19:09:50 2010 -0700

    Fix vDSO synthetic hwcap handling so they are not masked out from ld.so.cache matching.

diff --git a/ChangeLog b/ChangeLog
index 3d0f979..de7f38f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2010-07-20  Roland McGrath  <roland@redhat.com>
+
+	* elf/dl-sysdep.c (_dl_important_hwcaps): Add dsocaps mask to
+	dl_hwcap_mask as well as dl_hwcap.  Without this, dsocaps matching in
+	ld.so.cache was broken.  With it, there is no way to disable dsocaps
+	like LD_HWCAP_MASK can disable hwcaps.
+
 2010-07-16  Ulrich Drepper  <drepper@redhat.com>
 
 	* sysdeps/x86_64/multiarch/strstr.c: Rewrite to avoid indirect function
diff --git a/elf/dl-sysdep.c b/elf/dl-sysdep.c
index 160503d..e6c8660 100644
--- a/elf/dl-sysdep.c
+++ b/elf/dl-sysdep.c
@@ -425,6 +425,11 @@ _dl_important_hwcaps (const char *platform, size_t platform_len, size_t *sz,
     {
       const ElfW(Word) mask = ((const ElfW(Word) *) dsocaps)[-1];
       GLRO(dl_hwcap) |= (uint64_t) mask << _DL_FIRST_EXTRA;
+      /* Note that we add the dsocaps to the set already chosen by the
+	 LD_HWCAP_MASK environment variable (or default HWCAP_IMPORTANT).
+	 So there is no way to request ignoring an OS-supplied dsocap
+	 string and bit like you can ignore an OS-supplied HWCAP bit.  */
+      GLRO(dl_hwcap_mask) |= (uint64_t) mask << _DL_FIRST_EXTRA;
       size_t len;
       for (const char *p = dsocaps; p < dsocaps + dsocapslen; p += len + 1)
 	{

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog       |    7 +++++++
 elf/dl-sysdep.c |    5 +++++
 2 files changed, 12 insertions(+), 0 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources



More information about the Glibc-cvs mailing list