about summary refs log tree commit diff
path: root/sysdeps/generic/unwind-pe.h
diff options
context:
space:
mode:
authorSzabolcs Nagy <szabolcs.nagy@arm.com>2020-06-22 10:56:38 +0100
committerSzabolcs Nagy <szabolcs.nagy@arm.com>2020-07-02 09:27:05 +0100
commit09ea243d4b4a9f1d644e6445fcdd27185c78e44d (patch)
treef64cd5a4f1b27fc402404de4545ea7a78b5ed245 /sysdeps/generic/unwind-pe.h
parent4b3b0a983285237dbe9cce7a45f722b66a507c1d (diff)
downloadglibc-09ea243d4b4a9f1d644e6445fcdd27185c78e44d.tar.gz
glibc-09ea243d4b4a9f1d644e6445fcdd27185c78e44d.tar.xz
glibc-09ea243d4b4a9f1d644e6445fcdd27185c78e44d.zip
rtld: Clean up PT_NOTE and add PT_GNU_PROPERTY handling
Add generic code to handle PT_GNU_PROPERTY notes. Invalid
content is ignored, _dl_process_pt_gnu_property is always called
after PT_LOAD segments are mapped and it has no failure modes.
Currently only one NT_GNU_PROPERTY_TYPE_0 note is handled, which
contains target specific properties: the _dl_process_gnu_property
hook is called for each property.

The old _dl_process_pt_note and _rtld_process_pt_note differ in how
the program header is read.  The old _dl_process_pt_note is called
before PT_LOAD segments are mapped and _rtld_process_pt_note is called
after PT_LOAD segments are mapped. The old _rtld_process_pt_note is
removed and _dl_process_pt_note is always called after PT_LOAD
segments are mapped and now it has no failure modes.

The program headers are scanned backwards so that PT_NOTE can be
skipped if PT_GNU_PROPERTY exists.

Co-Authored-By: H.J. Lu <hjl.tools@gmail.com>
Diffstat (limited to 'sysdeps/generic/unwind-pe.h')
0 files changed, 0 insertions, 0 deletions