This is the mail archive of the
glibc-bugs@sourceware.org
mailing list for the glibc project.
[Bug dynamic-link/19178] New: ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA conflict
- From: "hjl.tools at gmail dot com" <sourceware-bugzilla at sourceware dot org>
- To: glibc-bugs at sourceware dot org
- Date: Wed, 28 Oct 2015 10:33:14 +0000
- Subject: [Bug dynamic-link/19178] New: ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA conflict
- Auto-submitted: auto-generated
https://sourceware.org/bugzilla/show_bug.cgi?id=19178
Bug ID: 19178
Summary: ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA conflict
Product: glibc
Version: 2.22
Status: NEW
Severity: normal
Priority: P2
Component: dynamic-link
Assignee: unassigned at sourceware dot org
Reporter: hjl.tools at gmail dot com
Target Milestone: ---
sysdeps/generic/ldsodefs.h has
#define ELF_RTYPE_CLASS_PLT 1
#ifndef DL_NO_COPY_RELOCS
# define ELF_RTYPE_CLASS_COPY 2
#else
# define ELF_RTYPE_CLASS_COPY 0
#endif
/* If DL_EXTERN_PROTECTED_DATA is defined, address of protected data
defined in the shared library may be external, i.e., due to copy
relocation. */
#ifdef DL_EXTERN_PROTECTED_DATA
# define ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA 4
#else
# define ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA 0
#endif
and _dl_debug_bindings in elf/dl-lookup.c has
if (value->s)
{
if (__glibc_unlikely (ELFW(ST_TYPE) (value->s->st_info)
== STT_TLS))
type_class = 4;
else if (__glibc_unlikely (ELFW(ST_TYPE) (value->s->st_info)
== STT_GNU_IFUNC))
type_class |= 8;
}
if (conflict
|| GLRO(dl_trace_prelink_map) == undef_map
|| GLRO(dl_trace_prelink_map) == NULL
|| type_class >= 4)
{
--
You are receiving this mail because:
You are on the CC list for the bug.