mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-29 11:41:21 +03:00
Check supported DF_1_XXX bits
This commit is contained in:
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>
|
2012-11-20 Carlos O'Donell <carlos_odonell@mentor.com>
|
||||||
|
|
||||||
* sysdeps/unix/make-syscalls.sh: Document prefixes.
|
* 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_ENDFILTEE 0x00004000 /* Filtee terminates filters search. */
|
||||||
#define DF_1_DISPRELDNE 0x00008000 /* Disp reloc applied at build time. */
|
#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_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. */
|
/* Flags for the feature selection in DT_FEATURE_1. */
|
||||||
#define DTF_1_PARINIT 0x00000001
|
#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;
|
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)
|
if (l->l_flags_1 & DF_1_NOW)
|
||||||
info[DT_BIND_NOW] = info[VERSYMIDX (DT_FLAGS_1)];
|
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
|
/* Some information which is not meant for the public and therefore not
|
||||||
in <elf.h>. */
|
in <elf.h>. */
|
||||||
# include <dl-dtprocnum.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
|
#endif
|
||||||
|
Reference in New Issue
Block a user