This is an archive of the discontinued LLVM Phabricator instance.

Use uniqueness of C++ fully-qualified names to resolve conflicts
ClosedPublic

Authored by artagnon on Nov 10 2015, 11:59 AM.

Details

Summary

A very expected layout: source tree is in ~/src/llvm, the build directory is in
~/src/llvm-build, and the install location is in /usr/local/{lib,include}.

The DWARF information in /usr/local/lib/libLLVM.a for ilist.h points to
~/src/llvm-build/include/llvm/ADT/ilist.h. Now, when someone includes
"llvm/ADT/ilist.h" and links against /usr/local/lib/libLLVM.a. Disaster.

The DWARF information in libUser.so for ilist.h points to two locations: the one
in /usr/include, and the one in ~/src/llvm-build/include. LLDB gets confused.

Let's uniquify fully-qualified names and never trip on such a thing.

Patch-by: Greg Clayton

Diff Detail

Repository
rL LLVM

Event Timeline

artagnon updated this revision to Diff 39841.Nov 10 2015, 11:59 AM
artagnon retitled this revision from to Use uniqueness of C++ fully-qualified names to resolve conflicts.
artagnon updated this object.
artagnon added reviewers: clayborg, tfiala.
artagnon added a subscriber: lldb-commits.
clayborg accepted this revision.Nov 11 2015, 10:24 AM
clayborg edited edge metadata.

Looks good!

This revision is now accepted and ready to land.Nov 11 2015, 10:24 AM
This revision was automatically updated to reflect the committed changes.