Page MenuHomePhabricator

[lld] [ELF] Never mark the dynamic linker as DT_NEEDED
ClosedPublic

Authored by rafaelauler on Oct 1 2014, 8:01 PM.

Details

Summary

This patch adds logic to avoid putting the dynamic linker library (ld.so) as a
DT_NEEDED entry in the dynamic table. It should only appear in PT_INTERP.

This patch fixes SPEC programs 433, 445, 450, 453, 456, 462 when running on
Ubuntu Linux x86_64 and when linking SPEC programs with LLD and glibc 2.19.

Diff Detail

Event Timeline

rafaelauler updated this revision to Diff 14309.Oct 1 2014, 8:01 PM
rafaelauler retitled this revision from to [lld] [ELF] Never mark the dynamic linker as DT_NEEDED.
rafaelauler updated this object.
rafaelauler edited the test plan for this revision. (Show Details)
rafaelauler added reviewers: Bigcheese, shankarke.
rafaelauler added a subscriber: Unknown Object (MLST).
shankar.easwaran requested changes to this revision.Oct 1 2014, 8:13 PM

Remove it from soneeded instead.

This revision now requires changes to proceed.Oct 1 2014, 8:13 PM
rafaelauler updated this revision to Diff 14310.Oct 1 2014, 8:26 PM
rafaelauler edited edge metadata.

Makes sense, since soneeded is a stringmap. Thanks! I updated the patch.

shankar.easwaran edited edge metadata.

LGTM

This revision is now accepted and ready to land.Oct 1 2014, 8:37 PM

Committed r218847.

rafaelauler closed this revision.Oct 1 2014, 9:04 PM
emaste added a subscriber: emaste.Oct 2 2014, 4:55 AM