mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-23 17:53:37 +08:00
Warn about unsupported DT_FLAGS_1 flags.
The dynamic loader will now warn about unsupported DT_FLAGS_1 flags when run with LD_DEBUG=files or LD_DEBUG=all.
This commit is contained in:
parent
6355e122f5
commit
c93ec1f091
@ -1,3 +1,8 @@
|
||||
2012-11-29 Carlos O'Donell <carlos@systemhalted.org>
|
||||
|
||||
* elf/get-dynamic-info.h (elf_get_dynamic_info): Warn
|
||||
for unsupported DF_1_* bits when DL_DEBUG_FILES is set.
|
||||
|
||||
2012-11-29 Mike Frysinger <vapier@gentoo.org>
|
||||
|
||||
* sysdeps/unix/sysv/linux/clock_getcpuclockid.c (HAS_CPUCLOCK): Delete.
|
||||
|
@ -151,8 +151,16 @@ elf_get_dynamic_info (struct link_map *l, ElfW(Dyn) *temp)
|
||||
{
|
||||
l->l_flags_1 = info[VERSYMIDX (DT_FLAGS_1)]->d_un.d_val;
|
||||
|
||||
/* Only DT_1_SUPPORTED_MASK bits are allowed. */
|
||||
assert ((l->l_flags_1 & ~DT_1_SUPPORTED_MASK) == 0);
|
||||
/* Only DT_1_SUPPORTED_MASK bits are supported, and we would like
|
||||
to assert this, but we can't. Users have been setting
|
||||
unsupported DF_1_* flags for a long time and glibc has ignored
|
||||
them. Therefore to avoid breaking existing applications the
|
||||
best we can do is add a warning during debugging with the
|
||||
intent of notifying the user of the problem. */
|
||||
if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_FILES, 0)
|
||||
&& l->l_flags_1 & ~DT_1_SUPPORTED_MASK)
|
||||
_dl_debug_printf ("\nWARNING: Unsupported flag value(s) of 0x%x in DT_FLAGS_1.\n",
|
||||
l->l_flags_1 & ~DT_1_SUPPORTED_MASK);
|
||||
|
||||
if (l->l_flags_1 & DF_1_NOW)
|
||||
info[DT_BIND_NOW] = info[VERSYMIDX (DT_FLAGS_1)];
|
||||
|
Loading…
Reference in New Issue
Block a user