Bug 615701

Summary: RHEL 6 beta 2 glibc does not load nosegneg libraries on a 32-bit Xen domU system
Product: Red Hat Enterprise Linux 6 Reporter: Matt Wilson <msw>
Component: glibcAssignee: Andreas Schwab <schwab>
Status: CLOSED ERRATA QA Contact: qe-baseos-tools
Severity: medium Docs Contact:
Priority: low    
Version: 6.0CC: fweimer, mfranc, notting, pmuller, roland
Target Milestone: rcKeywords: Regression
Target Release: ---   
Hardware: All   
OS: Linux   
Fixed In Version: glibc-2.12-1.12.el6 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-05-19 13:15:51 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Description Matt Wilson 2010-07-18 05:10:18 UTC
Description of problem:
When running in a 32-bit Xen domU environment, glibc does not load the nosegneg libraries when "hwcap 1 nosegneg" is in /etc/ld.so.conf.d/nosegneg.conf

Version-Release number of selected component (if applicable): 2.12-1.2.el6

How reproducible: 100%

Steps to Reproduce (on Xen domU):
1. # echo hwcap 1 nosegneg > /etc/ld.so.conf.d/nosegneg.conf
2. # ldconfig
3. # ldd /bin/true
Actual results:
        linux-gate.so.1 =>  (0xb7798000)
        libc.so.6 => /lib/libc.so.6 (0xb76bb000)
        /lib/ld-linux.so.2 (0xb7799000)

Expected results:
        linux-gate.so.1 =>  (0xb7798000)
        libc.so.6 => /lib/i686/nosegneg/libc.so.6 (0xb7624000)
        /lib/ld-linux.so.2 (0xb7799000)

Additional info:

This bug was introduced in http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=7bfa311ff51999f9e92620268e493959a2f7bfb4 

Rolling back this change corrects the behavior.

Comment 2 RHEL Product and Program Management 2010-07-18 05:37:51 UTC
This issue has been proposed when we are only considering blocker
issues in the current Red Hat Enterprise Linux release. It has
been denied for the current Red Hat Enterprise Linux release.

** If you would still like this issue considered for the current
release, ask your support representative to file as a blocker on
your behalf. Otherwise ask that it be considered for the next
Red Hat Enterprise Linux release. **

Comment 3 Roland McGrath 2010-07-19 23:33:25 UTC
Probably fixed by:

diff --git a/elf/dl-sysdep.c b/elf/dl-sysdep.c
index 160503d..75cb310 100644
--- a/elf/dl-sysdep.c
+++ b/elf/dl-sysdep.c
@@ -425,6 +425,7 @@ _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;
+      GLRO(dl_hwcap_mask) |= (uint64_t) mask << _DL_FIRST_EXTRA;
       size_t len;
       for (const char *p = dsocaps; p < dsocaps + dsocapslen; p += len + 1)

Note this does not permit for LD_HWCAP_MASK environment variable constraining vDSO capabilities used.

Comment 4 Matt Wilson 2010-07-20 00:08:24 UTC
testing a patched glibc now.

Comment 5 Matt Wilson 2010-07-20 18:02:41 UTC
tested this yesterday and forgot to report back. This does seem to fix the problem.

Comment 6 Andreas Schwab 2010-07-28 15:08:32 UTC

Comment 11 errata-xmlrpc 2011-05-19 13:15:51 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.