[Bug dynamic-link/19178] ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA conflict
mark.hatle at windriver dot com
sourceware-bugzilla@sourceware.org
Wed Oct 28 14:37:00 GMT 2015
https://sourceware.org/bugzilla/show_bug.cgi?id=19178
Mark Hatle <mark.hatle at windriver dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |mark.hatle at windriver dot com
--- Comment #3 from Mark Hatle <mark.hatle at windriver dot com> ---
The interface between glibc's rtld (ld.so) and prelink is determined by the
setting of the LD_TRACE_PRELINKING option. This option in turn sets:
GLRO_dl_debug_mask |= DL_DEBUG_PRELINK
as well as defines the GLRO(dl_trace_prelink_map).
Since the thing that matters in this case is that both the prelinker and glibc
agree on the common values for the 'type_class' field. It may be reasonable to
do a conversion if DL_DEBUG_PRELINK is enabled to matching prelink values.
This would permit the same values to be used in both older and newer prelink.
The alternative is to do something like:
#define ELF_RTYPE_CLASS_PLT 1
#define ELF_RTYPE_CLASS_COPY 2
#define ELF_RTYPE_CLASS_TLS 4
#define ELF_RTYPE_CLASS_IFUNC 8
#define ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA 16 (was 4)
This would preserve previous behavior (glibc 2.21 and before) and add the new
type as '16'.
I do not know though if this is "ok", in that the users of
ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA inside of glibc itself could be affected.
If this value is used internally -- it shouldn't cause any problems, otherwise
we've got the potential issue of other things not understanding the value was
changed.
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the Glibc-bugs
mailing list