mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-23 09:43:32 +08:00
Check supported DF_1_XXX bits
This commit is contained in:
parent
86fe56bbde
commit
7e1be74125
15
ChangeLog
15
ChangeLog
@ -1,3 +1,18 @@
|
||||
2012-11-21 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* elf/elf.h (DF_1_NODIRECT): New macro.
|
||||
(DF_1_IGNMULDEF): Likewise.
|
||||
(DF_1_NOKSYMS): Likewise.
|
||||
(DF_1_NOHDR): Likewise.
|
||||
(DF_1_EDITED): Likewise.
|
||||
(DF_1_NORELOC): Likewise.
|
||||
(DF_1_SYMINTPOSE): Likewise.
|
||||
(DF_1_GLOBAUDIT): Likewise.
|
||||
(DF_1_SINGLETON): Likewise.
|
||||
* elf/get-dynamic-info.h (elf_get_dynamic_info): Assert
|
||||
DT_1_SUPPORTED_MASK bits.
|
||||
* include/elf.h (DT_1_SUPPORTED_MASK): New macro.
|
||||
|
||||
2012-11-20 Carlos O'Donell <carlos_odonell@mentor.com>
|
||||
|
||||
* sysdeps/unix/make-syscalls.sh: Document prefixes.
|
||||
|
@ -798,6 +798,15 @@ typedef struct
|
||||
#define DF_1_ENDFILTEE 0x00004000 /* Filtee terminates filters search. */
|
||||
#define DF_1_DISPRELDNE 0x00008000 /* Disp reloc applied at build time. */
|
||||
#define DF_1_DISPRELPND 0x00010000 /* Disp reloc applied at run-time. */
|
||||
#define DF_1_NODIRECT 0x00020000 /* Object has no-direct binding. */
|
||||
#define DF_1_IGNMULDEF 0x00040000
|
||||
#define DF_1_NOKSYMS 0x00080000
|
||||
#define DF_1_NOHDR 0x00100000
|
||||
#define DF_1_EDITED 0x00200000 /* Object is modified after built. */
|
||||
#define DF_1_NORELOC 0x00400000
|
||||
#define DF_1_SYMINTPOSE 0x00800000 /* Object has individual interposers. */
|
||||
#define DF_1_GLOBAUDIT 0x01000000 /* Global auditin required. */
|
||||
#define DF_1_SINGLETON 0x02000000 /* Singleton symbols are used. */
|
||||
|
||||
/* Flags for the feature selection in DT_FEATURE_1. */
|
||||
#define DTF_1_PARINIT 0x00000001
|
||||
|
@ -151,6 +151,9 @@ 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);
|
||||
|
||||
if (l->l_flags_1 & DF_1_NOW)
|
||||
info[DT_BIND_NOW] = info[VERSYMIDX (DT_FLAGS_1)];
|
||||
}
|
||||
|
@ -3,4 +3,10 @@
|
||||
/* Some information which is not meant for the public and therefore not
|
||||
in <elf.h>. */
|
||||
# include <dl-dtprocnum.h>
|
||||
# ifdef DT_1_SUPPORTED_MASK
|
||||
# error DT_1_SUPPORTED_MASK is defined!
|
||||
# endif
|
||||
# define DT_1_SUPPORTED_MASK \
|
||||
(DF_1_NOW | DF_1_NODELETE | DF_1_INITFIRST | DF_1_NOOPEN \
|
||||
| DF_1_ORIGIN | DF_1_NODEFLIB)
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user