diff options
| author | Chandler Carruth <chandlerc@gmail.com> | 2011-10-16 10:54:30 +0000 |
|---|---|---|
| committer | Chandler Carruth <chandlerc@gmail.com> | 2011-10-16 10:54:30 +0000 |
| commit | a7b4414ac2f1f8ae8e0149ffb4d6b3668459e07d (patch) | |
| tree | ad16935e996ae258d5181919d2590c62707c0395 /llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp | |
| parent | 47f5e30e78ab14bbd1e9502ec64a4e0d11b6c0e9 (diff) | |
| download | bcm5719-llvm-a7b4414ac2f1f8ae8e0149ffb4d6b3668459e07d.tar.gz bcm5719-llvm-a7b4414ac2f1f8ae8e0149ffb4d6b3668459e07d.zip | |
Clean up some cruft in the library path searching logic by making
'libdir' mean the actual library directory, not the GCC subdirectory of
the library directory. That was just a confusing pattern. Instead,
supply proper GCC subdirectories when scanning for various triple-based
subdirectories with a GCC installation in them. This also makes it much
more obvious how multiarch installations, which have a triple-based
prefix as well as suffix work.
Also clean up our handling of these triple-prefixed trees by using them
in both a multiarch pattern and a non-multiarch pattern whenever they
exist.
Note that this *does not* match what GCC does on Debian, the only truly
multiarch installation I've been able to get installed and test on. GCC
appears to have a bug, and ends up searching paths like
'/lib/../../lib32' which makes no sense what-so-ever. Instead, I've
tried to encode the rational logic that seems clearly intended by GCC's
pattern. GCC ends up with patterns like:
/lib/../../lib32
/usr/lib/../../lib32
/usr/lib/x86_64-linux-gnu/../..lib32
Only the last one makes any sense having a '/../..' in it, so in Clang,
that's the only one which gets a '/../..' in it.
I *think* this will fix Debian multiarch links. I'm committing without
baking this logic into our test suite so I can test on a few different
systems. If all goes well (and no one screams) I'll check in some more
comprehensive tests for multiarch behavior tomorrow.
llvm-svn: 142133
Diffstat (limited to 'llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp')
0 files changed, 0 insertions, 0 deletions

