]> granicus.if.org Git - clang/commit
Factor the data apart from the logic of locating various GCC
authorChandler Carruth <chandlerc@gmail.com>
Tue, 4 Oct 2011 02:28:41 +0000 (02:28 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Tue, 4 Oct 2011 02:28:41 +0000 (02:28 +0000)
commitadc4afb4a56e0905753d4ef7a3491f2c0097d80a
treef6a419d82abc684e9ed2230565ceddea4ff4e0f7
parentd0790b8a0687f5874bc46fc298133a8b070fb667
Factor the data apart from the logic of locating various GCC
installations. This first selects a set of prefixes and a set of
compatible triples for the current architecture. Once selected, we drive
the search with a single piece of code.

This code isn't particularly efficient as it stands, but its only
executed once. I'm hoping as I clean up the users of this information,
it will also slowly become both cleaner and more efficient.

This also changes the behavior slightly. Previously, we had an ad-hoc
list of prefixes and triples, and we only looked for some triples
beneath specific prefixes and vice versa. This has led to lots of
one-off patches to support triple X, or support lib dir Y. Even without
going to a fully universal driver, we can do better here. This patch
makes us always look first in either 'lib32' or 'lib64' on 32- or 64-bit
hosts (resp.). However, we *always* look in 'lib'.

Currently I have one lingering problem with this strategy. We might find
a newer or better GCC version under a different (but equally compatible)
triple. Fundamentally, this loop needs to be fused with the one below.
That's my next patch.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141056 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Driver/ToolChains.cpp