]>
Commit | Line | Data |
---|---|---|
12788f63 MT |
1 | 2010-07-20 Roland McGrath <roland@redhat.com> |
2 | ||
3 | * elf/dl-sysdep.c (_dl_important_hwcaps): Add dsocaps mask to | |
4 | dl_hwcap_mask as well as dl_hwcap. Without this, dsocaps matching in | |
5 | ld.so.cache was broken. With it, there is no way to disable dsocaps | |
6 | like LD_HWCAP_MASK can disable hwcaps. | |
7 | ||
8 | Index: glibc-2.12-2-gc4ccff1/elf/dl-sysdep.c | |
9 | =================================================================== | |
10 | --- glibc-2.12-2-gc4ccff1.orig/elf/dl-sysdep.c | |
11 | +++ glibc-2.12-2-gc4ccff1/elf/dl-sysdep.c | |
12 | @@ -425,6 +425,11 @@ _dl_important_hwcaps (const char *platfo | |
13 | { | |
14 | const ElfW(Word) mask = ((const ElfW(Word) *) dsocaps)[-1]; | |
15 | GLRO(dl_hwcap) |= (uint64_t) mask << _DL_FIRST_EXTRA; | |
16 | + /* Note that we add the dsocaps to the set already chosen by the | |
17 | + LD_HWCAP_MASK environment variable (or default HWCAP_IMPORTANT). | |
18 | + So there is no way to request ignoring an OS-supplied dsocap | |
19 | + string and bit like you can ignore an OS-supplied HWCAP bit. */ | |
20 | + GLRO(dl_hwcap_mask) |= (uint64_t) mask << _DL_FIRST_EXTRA; | |
21 | size_t len; | |
22 | for (const char *p = dsocaps; p < dsocaps + dsocapslen; p += len + 1) | |
23 | { |