This is an archive of the discontinued LLVM Phabricator instance.

[sanitizers] Get the proper symbol version when long double transition is involved.
ClosedPublic

Authored by koriakin on Apr 26 2016, 1:01 PM.

Details

Summary

On linux, some architectures had an ABI transition from 64-bit long double
(ie. same as double) to 128-bit long double. On those, glibc symbols
involving long doubles come in two versions, and we need to pass the
correct one to dlvsym when intercepting them.

A few more functions we intercept are also versioned (all printf, scanf,
strtold variants), but there's no need to fix these, as the REAL() versions
are never called.

This fixes 4 FAILs on powerpc64.

Diff Detail

Repository
rL LLVM

Event Timeline

koriakin retitled this revision from to [sanitizers] Get the proper symbol version when long double transition is involved..
koriakin updated this object.
koriakin added reviewers: kcc, eugenis.
koriakin set the repository for this revision to rL LLVM.
koriakin added a project: Restricted Project.
koriakin added a subscriber: llvm-commits.
eugenis accepted this revision.Apr 27 2016, 1:28 PM
eugenis edited edge metadata.

LGTM

This revision is now accepted and ready to land.Apr 27 2016, 1:28 PM
This revision was automatically updated to reflect the committed changes.