History log of /external/clang/lib/Driver/ToolChains.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
a4de17562d13d7a8188108243c4cfbd52f33229a 04-Mar-2016 Pirama Arumuga Nainar <pirama@google.com> Update aosp/master clang for rebase to r256229

http://b/26987366

(cherry picked from commit 87d948ecccffea9e9e37d0d053b246e2d6d6c47b)

Change-Id: I10ca401a280e905253aafabad9118693a2f24ffb
/external/clang/lib/Driver/ToolChains.cpp
b6d6993e6e6d3daf4d9876794254d20a134e37c2 01-Jul-2015 Pirama Arumuga Nainar <pirama@google.com> Update aosp/master clang for rebase to r239765

Change-Id: I0393bcc952590a7226af8c4b58534a8ee5fd2d99
/external/clang/lib/Driver/ToolChains.cpp
58878f85ab89b13e9eea4af3ccf055e42c557bc8 06-May-2015 Pirama Arumuga Nainar <pirama@google.com> Update aosp/master clang for rebase to r235153

Change-Id: Ia94bbcb6da7c75b6e7c2afedd1001094d62a7324
/external/clang/lib/Driver/ToolChains.cpp
3ea9e33ea25e0c2b12db56418ba3f994eb662c04 08-Apr-2015 Pirama Arumuga Nainar <pirama@google.com> Update aosp/master clang for rebase to r233350

Change-Id: I12d4823f10bc9e445b8b86e7721b71f98d1df442
/external/clang/lib/Driver/ToolChains.cpp
0e2c34f92f00628d48968dfea096d36381f494cb 23-Mar-2015 Stephen Hines <srhines@google.com> Update aosp/master clang for rebase to r230699.

Change-Id: I6a546ab3d4ae37119eebb735e102cca4f80ab520
/external/clang/lib/Driver/ToolChains.cpp
176edba5311f6eff0cad2631449885ddf4fbc9ea 01-Dec-2014 Stephen Hines <srhines@google.com> Update aosp/master Clang for rebase to r222490.

Change-Id: Ic557ac55e97fbf6ee08771c7b7c3594777b0aefd
/external/clang/lib/Driver/ToolChains.cpp
c568f1e98938584c0ef0b12ae5018ff7d90a4072 21-Jul-2014 Stephen Hines <srhines@google.com> Update Clang for rebase to r212749.

This also fixes a small issue with arm_neon.h not being generated always.

Includes a cherry-pick of:
r213450 - fixes mac-specific header issue
r213126 - removes a default -Bsymbolic on Android

Change-Id: I2a790a0f5d3b2aab11de596fc3a74e7cbc99081d
/external/clang/lib/Driver/ToolChains.cpp
6bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89 29-May-2014 Stephen Hines <srhines@google.com> Update Clang for 3.5 rebase (r209713).

Change-Id: I8c9133b0f8f776dc915f270b60f94962e771bc83
/external/clang/lib/Driver/ToolChains.cpp
651f13cea278ec967336033dd032faef0e9fc2ec 24-Apr-2014 Stephen Hines <srhines@google.com> Updated to Clang 3.5a.

Change-Id: I8127eb568f674c2e72635b639a3295381fe8af82
/external/clang/lib/Driver/ToolChains.cpp
6c5c3adab3ff343c2fc6d9a34808aa9b65d6baaa 02-Dec-2013 Daniel Sanders <daniel.sanders@imgtec.com> Merged r195249:
------------------------------------------------------------------------
r195249 | atanasyan | 2013-11-20 13:53:20 +0000 (Wed, 20 Nov 2013) | 2 lines

[Mips] Take in account the -mfp64 command line option when build paths
to the crt*.o files, libraries and headers for the MIPS FSFS toolchain.
------------------------------------------------------------------------



git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_34@196082 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
32ca73e33fcc7c75ea1c297755a300be3e9e5371 16-Nov-2013 Jim Grosbach <grosbach@apple.com> X86: Make specifying avx2 simpler on Darwin with '-arch'

Teach the '-arch' command line option to enable the compiler-friendly
features of core-avx2 CPUs on Darwin. Pass the information along in the
target triple like Darwin+ARM does.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194907 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
cc82b98811a0df6a41e8a92bd9f7361f4815e3df 15-Nov-2013 Alexander Potapenko <glider@google.com> [ASan] Link with libclang_rt.asan_iossim_dynamic.dylib when targeting the iOS simulator.
Add a test.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194820 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
db33419ecf2c608f1024366364fe64220ec4a057 10-Nov-2013 Roman Divacky <rdivacky@freebsd.org> Add gold plugin support to the FreeBSD link driver.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194350 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
1cc766fb3e62fedc5d99b103bcd0ec4aa3146859 09-Nov-2013 David Chisnall <csdavec@swan.ac.uk> Commit the changes to make libc++ the default on FreeBSD >= 10, rather than
just the test...



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194333 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
24d91e6b5f90c4a057c3833915f9decf690780e1 07-Nov-2013 Sylvestre Ledru <sylvestre@debian.org> Ubuntu has published its Saucy release. 'Trusty Tahr' dev has just started. Add its support in Clang

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194198 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
66dbb3f95e1666089acd3431792d02c623e459fc 03-Nov-2013 Bob Wilson <bob.wilson@apple.com> Default to use libc++ on OS X 10.9+ and iOS 7+.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193934 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
c6911a2b1fc176e4d6053ed86506c17c3d8b0057 01-Nov-2013 Peter Collingbourne <peter@pcc.me.uk> SanitizerArgs: add ability to filter/diagnose unsupported sanitizers.

The thread, memory, dataflow and function sanitizers are now diagnosed if
enabled explicitly on an unsupported platform. Unsupported sanitizers which
are enabled implicitly (as part of a larger group) are silently disabled. As a
side effect, this makes SanitizerArgs parsing toolchain-dependent (and thus
essentially reverts r188058), and moves SanitizerArgs ownership to ToolChain.

Differential Revision: http://llvm-reviews.chandlerc.com/D1990

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193875 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
2a9b75840ed7f18c36e988ea52d1f434bb004d4f 29-Oct-2013 Chandler Carruth <chandlerc@gmail.com> Teach the driver to not try to use 'lib32' multilib spellings on ARM
which doesn't use that multilib. As a consequence, fix Clang's support
for cross compiling environments that were relying on this quirk to
ensure the correct library search path ordering.

This also re-instates the new test cases from Rafael's r193528 for
cross-compiling to ARM on Ubuntu 13.10 without any of the changes to the
existing test cases (they were no longer needed).

This solution was the result of a lot of IRC debugging and trying to
understand *exactly* what quirk was being relied upon. It took some time
for me to figure out that it was the use of 'lib32' is a multilib that
was throwing a wrench in the works.

In case you are thinking that its silly to use a multilib of 'lib' at
all, entertainingly, GCC does so as well (you can see it with the
.../lib/../lib/crt1.o pattern it uses), and the 2-phase sequence of
search paths (multilib followed by non-multilib) has observable (if
dubious) consequences. =/ Yuck.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193601 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
fe88a10f396059d339d807a1737d6283412d38e0 29-Oct-2013 Chandler Carruth <chandlerc@gmail.com> Doh, got this turned around. This is in fact the consistent ordering.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193596 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
f4ad5adac038bf0ecddd5111485d47e8756e2b15 29-Oct-2013 Chandler Carruth <chandlerc@gmail.com> Clean up the deeply misleading name of the "MultiLibSuffix". This is
actually a MIPS-only hack to shim in random ABI directory suffixes in
numerous places throughout the toolchain's path search. It shouldn't
appear to be anything more general or useful.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193595 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
76671edc68f1c86369c84c2a6c011dabd39e37e5 29-Oct-2013 Chandler Carruth <chandlerc@gmail.com> Cleanup comments and braces. No functionality changed, just trying to
record what is *actually* going on here as the comments existing in the
code are confusing at best, and in places outright misleading.

The API is even more misleading. Yay.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193577 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
9a478245aecf58ca4e68ed629a840a74437e0ec1 29-Oct-2013 Rafael Espindola <rafael.espindola@gmail.com> Revert "Support cross linking to arm on ubuntu."

This reverts commit r193528 (and fixes).

It broke Chandler's setup.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193554 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
ba37ef953253e537147aaba68ee449dd63c67963 28-Oct-2013 Rafael Espindola <rafael.espindola@gmail.com> Support cross linking to arm on ubuntu.

With this patch we correctly determine that ubuntu's ARM tree is not biarch
and use "lib" istead of "lib32".

Without this patch the search inside the arm tree for the crt files was failing
and we would end up trying to use the i686 ones in lib32.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193528 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
1a747829093ce59455685cdbe0aeff8d7b129d40 25-Oct-2013 Rafael Espindola <rafael.espindola@gmail.com> Just detect a distro as being fedora or not.

We don't have any checks that depend on the version of fedora, so we can
simplify.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193423 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
79cabd0793a624c1bc64c7c9e11575793c01b1e7 25-Oct-2013 Rafael Espindola <rafael.espindola@gmail.com> Merge two adjacent ifs.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193419 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
c427249cb79b77c3cd7a0855f854d2ff81618ddf 24-Oct-2013 Bernard Ogden <bogden@arm.com> Teach clang driver about Cortex-A53 and Cortex-A57.

Adds some Cortex-A53 strings where they were missing before.
Cortex-A57 is entirely new to clang.

Doesn't touch code only used by Darwin, in consequence of which
one of the A53 lines has been removed.

Change-Id: I5edb58f6eae93947334787e26a8772c736de6483

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193364 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
66b5dac8b70229dfe7c7cc882de21b1265a6cdea 24-Oct-2013 Tim Northover <tnorthover@apple.com> ARM-Darwin: Use the *-*-darwin-eabi triple for v6m & v7m archs

These arch arguments are used for embedded targets (obviously) which need a
different calling convention to iOS.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193328 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
e69cca48505098f1ca70b10f829b07526d6465bf 14-Oct-2013 Joerg Sonnenberger <joerg@bec.de> For NetBSD/current on X86 do not use libgcc and default to libc++.
Adjust linkage to make more sense for older releases.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192615 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
4e490e271ce3f0d4289b5115e000b55333c1b829 11-Oct-2013 Robert Lytton <robert@xmos.com> XCore target: add an xcore toolchain implementation

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192437 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
4e30cdf93fec46a6ceb326e57ceb46ad7e9c2c6c 10-Oct-2013 Simon Atanasyan <simon@atanasyan.com> [Mips] Support FSF Mips toolchain directories tree in the Clang driver.

The patch reviewed by Rafael Espindola.
http://llvm-reviews.chandlerc.com/D1843

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192343 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
87d52eb5ae91f4b5f1ce8c9ee747217843d4ffcf 09-Oct-2013 Simon Atanasyan <simon@atanasyan.com> [Mips] Group MIPS-related options checking function in one place.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192293 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
178bf0d7f0a2c09c3132c382ff7099a29440826f 09-Oct-2013 Simon Atanasyan <simon@atanasyan.com> [Mips] Make the isMipsR2Arch() function simpler - remove checking for
MIPS-arch.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192292 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
66751bc99c733107c8381c8d43bdeda254094a1a 09-Oct-2013 Simon Atanasyan <simon@atanasyan.com> [Mips] Do not check for options from the OPT_mips_CPUs_Group. All these
options are aliases now.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192290 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
ab5df7503abd0df6b815d11ebf271fa7650d83ae 05-Oct-2013 Simon Atanasyan <simon@atanasyan.com> Remove unused param from Linux::computeSysRoot().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192034 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
5c805e92a5f70a913bc3bfcd15c44875974c2111 28-Sep-2013 Simon Atanasyan <simon@atanasyan.com> Separate construction of bi-arch path suffix from construction of
multi-library path suffix.

The code calculates MIPS toolchain specific multi-lib path suffixes like
mips16/soft-float/el is moved to the separate function
findMultiLibSuffix(). This function called during GCC installation
detection and result is stored for the future using.

The patch reviewed by Rafael Espindola.
http://llvm-reviews.chandlerc.com/D1738

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191612 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
f26d8bc4406be1311a38fd1761d5ddeb2f5a38b6 24-Sep-2013 Rafael Espindola <rafael.espindola@gmail.com> Remove a use of OPT_m_Joined.

This patch turns the -mv* hexagon options into aliases. We should really produce
errors for invalid versions in the driver, but this patch preserves the old
behavior for now.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191298 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
4123b92f915fb27855ddaa294b0c7de7aa6c6274 20-Sep-2013 Alexander Potapenko <glider@google.com> [ASan] Do not imply -undefined dynamic_lookup when linking dylibs with -fsanitize=address.
Instead add the ASan runtime to the linker command line so that only the ASan API functions can be undefined in the target library.

Fixes http://llvm.org/bugs/show_bug.cgi?id=17275



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191076 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
b029c5038b73fd093291f40059614b5421a45ec8 13-Sep-2013 Renato Golin <renato.golin@linaro.org> Moving Cortex-R cores to armv7r arch

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190704 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
5df4045db5e10408da7e33b0df7df553da2fee68 13-Sep-2013 Renato Golin <renato.golin@linaro.org> Add more Cortex CPUs and tests

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190703 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
69ca5e263feb5d231a81bbd28f96bca6a630bd50 29-Aug-2013 Rafael Espindola <rafael.espindola@gmail.com> Look for libstdc++ first on the clang install directory.

When sysroot is not set, look for libstdc++ first on the clang install
directory. Before this change if clang was installed alongside a gcc with
the same version as the system one we would select the system libstdc++.

Unfortunately this is hard to test as only the non-sysroot case is changed.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189536 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
0affc67389171834adf113e3a0422a32218a6192 26-Aug-2013 Chandler Carruth <chandlerc@gmail.com> Teach the Linux toolchain about more modern Gentoo installations of GCC
which add another wrinkle to the installation of the libstdc++ headers.

Add at least some basic testing of the weirdnesses of Gentoo's layout.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189212 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
1b8f12d46c10169bb949372ec5fc4c58afc2ced1 19-Aug-2013 Alexey Samsonov <samsonov@google.com> Move SanitizerArgs to the clang Driver

Summary:
This change turns SanitizerArgs into high-level options
stored in the Driver, which are parsed lazily. This fixes an issue of multiple copies of the same diagnostic message produced by sanitizer arguments parser.

Reviewers: rsmith

Reviewed By: rsmith

CC: chandlerc, eugenis, cfe-commits

Differential Revision: http://llvm-reviews.chandlerc.com/D1341

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188660 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
f15b26cf378ac4706a861444fccb177f6116087e 14-Aug-2013 Benjamin Kramer <benny.kra@googlemail.com> Enhance the clang -v gcc debug printing to skip obviously bad and duplicate paths.

Otherwise it lists all files (e.g. shared libraries) that happen to be in the
same paths the GCC installations usually reside in.

On a x86_64 Debian 7 system with i386 multilibs.
before: clang -v 2>&1|wc -l
3059
after: clang -v 2>&1|wc -l
10

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188400 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
ed5f28fd8bdb0ea39a28f4ade6b3ab57f0c8f780 09-Aug-2013 Benjamin Kramer <benny.kra@googlemail.com> Add a convenient way to compare GCCVersions without creating temporary objects.

No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188084 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
8bdc92c01eeb345042b99650c6860b6aaa683ad8 09-Aug-2013 Alexey Samsonov <samsonov@google.com> Make SanitizerArgs parsing toolchain-independent

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188058 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
28803ba0cd8a5d13d104af96aadf72dca4160a7f 31-Jul-2013 Chandler Carruth <chandlerc@gmail.com> Find a better compromise with the default library search paths used by
Clang when linking and using a GCC installation from a GCC
cross-compiler.

This was desired already by two special case platforms (Android and
Mips), and turns out to be generally (if frustratingly) true. I've added
a substantial comment to the code clarifying the underlying assumptions
of doing actual cross compiles with Clang (or GCC for that matter!) and
help avoid further confusion here.

The end result is to realize that fully general form of PR12478 cannot
be resolved while we support existing cross-compiling GCC toolchains,
and linking with them (namely, linking against their libgcc and
libstdc++ installs). GCC installs these target libraries under
a target-specific prefix but one that may not be available within the
actual sysroot in use. When linking in this world, GCC works and Clang
should as well, but caveat emptor: DSOs from this tree must be
replicated and rpath-fixed to be found at runtime within the sysroot.

I've extended the cross compile test cases to cover these issues by
pointing them at a sysroot and actually checking the library search
paths.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187466 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
6365ab91a0cf2f20c73ea9c39b55c14ab438018e 30-Jul-2013 Chandler Carruth <chandlerc@gmail.com> Start keeping track of what work was done to detect a GCC installation
on the system, and report it when running the driver in verbose mode.
Without this it is essentially impossible to understand why a particular
GCC toolchain is used by Clang for libstdc++, libgcc, etc.

This also required threading a hook through the toolchain layers for
a specific toolchain implementation to print custom information under
'clang -v'. The naming here isn't spectacular. Suggestions welcome.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187427 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
ea7fb0ce25acc04664a2e7c2b24af03cef2c0d1f 26-Jul-2013 Bill Schmidt <wschmidt@linux.vnet.ibm.com> [PowerPC] Support powerpc64le as a syntax-checking target.

This patch provides basic support for powerpc64le as an LLVM target.
However, use of this target will not actually generate little-endian
code. Instead, use of the target will cause the correct little-endian
built-in defines to be generated, so that code that tests for
__LITTLE_ENDIAN__, for example, will be correctly parsed for
syntax-only testing. Code generation will otherwise be the same as
powerpc64 (big-endian), for now.

The patch leaves open the possibility of creating a little-endian
PowerPC64 back end, but there is no immediate intent to create such a
thing.

The new test case variant ensures that correct built-in defines for
little-endian code are generated.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187180 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
003e1dcafcdb757a893b031431620313ee7ecbbf 26-Jul-2013 Eli Friedman <eli.friedman@gmail.com> Fix gcc search for cross-compiler on Ubuntu 13.04.

Just more craziness to find crtbegin.o etc.

Patch by Stephen Kelly.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187175 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
766633416daaafdf5ad85aa9e1f18e7163cce92c 03-Jul-2013 Rafael Espindola <rafael.espindola@gmail.com> We don't need to know the OpenSUSE version, so don't parse it.

Patch by Johannes Obermayr.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185537 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
ceb6dc8e5afbd8e4dad7aaa1948994965fd8ff2e 28-Jun-2013 Benjamin Kramer <benny.kra@googlemail.com> Use the multiple argument form of path::append.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185164 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
4ec8d5b63d3e2a2c0d9f35243e5f798a89cd97bd 26-Jun-2013 Joey Gouly <joey.gouly@arm.com> Add support for passing '-target armv8' through the Driver.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184970 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
7b6301f7f5f9c0ead17a448aad7c456b3252bb45 26-Jun-2013 Rafael Espindola <rafael.espindola@gmail.com> Remove PathV1.h usage from ToolChains.cpp.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184902 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
40e6b30884d54c480f37c38beaa43390de7feb9e 25-Jun-2013 Rafael Espindola <rafael.espindola@gmail.com> Use simpler version of llvm::sys::fs::exists.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184857 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
d79486a19298af172dfa085d536e178e7b5ff20b 22-Jun-2013 Chandler Carruth <chandlerc@gmail.com> Reword and reformat some of the "Multiarch" code in the toolchain setup.

There are fundamentally two different things that were getting conflated
here.

1) A bi-arch GCC toolchain install. This is not a full blown cross
compiler, but it supports targetting both 32-bit and 64-bit variants
of the same architecture using multilib OS installs and runtimes.

2) A "multiarch" Debian OS/runtime layout that lays out the libraries,
headers, etc as-if there were going to be a full blown cross compiler
even when in reality it is just a bi-arch GCC targeting two variants.
Also, these tend to use oddly "canonicalized" triples without the
vendor in them unlike the typical cross compiler runtime library
search that vanilla GCC cross compilers perform.

Now, when we mean the bi-arch nature of GCC accomplished with just
a suffix or tweak to the GCC paths, we say 'Biarch' or something
related. When we mean the Debian layout of includes and libraries, we
say multiarch or reference the multiarch triple.

In the process of reading and often renaming stuff in all these places,
also reformat with clang-format. No functionality change should be going
on here, this is just tidying up.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184632 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
ef37744ff649b939c2262c12218abb24485977d1 21-Jun-2013 Chandler Carruth <chandlerc@gmail.com> Update a comment to clarify that searching the target triple bin
directory for programs used by the driver is actually the standard
behavior we want to be compatible with GCC cross compilers -- it isn't
specific to SUSE or any other distro.

Also start fleshing out testing of the different cross compilation
patterns, both with a new very bare-bones tree of cross compilers and by
extending the multilib trees. Currently, we don't correctly model doing
a cross compile using the non-triple target of a bi-arch GCC install,
but I'll add support for that (and tests) next.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184499 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
2d8b279656ba0b8d634f89695c710c45107e5a06 19-Jun-2013 Renato Golin <renato.golin@linaro.org> Revert "Adds support for openSUSE ARM v5/v7 triples."

This reverts commit 312e51ca484976c2b1254952ff23d5162ca8edc2.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184324 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
50abf4bcaa64f7410c8f8681974bb9e959d4a079 19-Jun-2013 Renato Golin <renato.golin@linaro.org> Adds support for openSUSE ARM v5/v7 triples.

Now, with a comma.

Patch by İsmail Dönmez

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184323 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
3c1e4f266a90553459b2b9dfb8e63429eac89995 19-Jun-2013 James Molloy <james.molloy@arm.com> Revert r184302 on Renato's behalf - it broke the bots and he's asked me to revert as he's unavailable.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184307 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
14595c2ea4999da6e79aa3b0b1981f63fda7c717 19-Jun-2013 Renato Golin <renato.golin@linaro.org> Adds support for openSUSE ARM v5/v7 triples.

Patch by İsmail Dönmez

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184302 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
a372f40dac73b69936f6a713df0808c740bb326c 17-Jun-2013 Rafael Espindola <rafael.espindola@gmail.com> Include PathV1.h only where it is used.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184090 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
b1e25a1bc03292dc538d336573e0be1490223171 14-Jun-2013 Reid Kleckner <reid@kleckner.net> [Driver] Refactor clang driver to use LLVM's Option library

The big changes are:
- Deleting Driver/(Arg|Opt)*
- Rewriting includes to llvm/Option/ and re-sorting
- 'using namespace llvm::opt' in clang::driver
- Fixing the autoconf build by adding option everywhere

As discussed in the review, this change includes using directives in
header files. I'll make follow up changes to remove those in favor of
name specifiers.

Reviewers: espindola

Differential Revision: http://llvm-reviews.chandlerc.com/D975

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@183989 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
162579a9441c7c8c308c56ac706799765ccbc4ee 14-Jun-2013 Tim Northover <tnorthover@apple.com> Remove implicit fallthrough from AArch64 to Mips in lib selection

Nothing useful to AArch64 will (should!) be found in any Mips-specific
directories.

Patch by Luke Zarko.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@183956 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
1b034649379530c8870932449354b876f90e1644 13-Jun-2013 Sylvestre Ledru <sylvestre@debian.org> Add Ubuntu Saucy to the list of known Ubuntu releases
Thanks to Dmitry Shachnev for the patch
See bug #16317



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@183899 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
b8409215523e5478b8b0aa9cdcd10038cf7651fe 06-May-2013 Ulrich Weigand <ulrich.weigand@de.ibm.com> Add SystemZ support

This patch then adds all the usual platform-specific pieces for SystemZ:
driver support, basic target info, register names and constraints,
ABI info and vararg support. It also adds new tests to verify pre-defined
macros and inline asm, and updates a test for the minimum alignment change.

This version of the patch incorporates feedback from reviews by
Eric Christopher and John McCall. Thanks to all reviewers!

Patch by Richard Sandiford.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181211 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
ec2b1b9c7c3be4c3140a1c9631ef9279d0fd8ec9 30-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Always use / when computing mips specific paths.

We were getting paths with both / and \ in them. This should fix mips-cs-ld.c
on the windows bots.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180783 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
a7efaf99ac662af11890aae74d84da8d31ab2fe0 30-Apr-2013 Joerg Sonnenberger <joerg@bec.de> Add support for -stdlib=libc++ in the NetBSD toolchain.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180766 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
990b5e5be5e60e91cab2134d7f37a0ba70f727c2 21-Apr-2013 Simon Atanasyan <simon@atanasyan.com> [Mips] Do not add unnecessary Mips toolchain path to the list
of system include directories with extern "C" semantics.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179979 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
8e8e95c57c310bbc52cdc8d32df23c95afc77916 20-Apr-2013 Simon Atanasyan <simon@atanasyan.com> Supports Sourcery CodeBench Mips toolchain directories tree.

Sourcery CodeBench and modern FSF Mips toolchains require a bit more
complicated algorithm to calculate headers, libraries and sysroot paths
than implemented by Clang driver now. The main problem is that all these
paths depend on a set of command line arguments additionally to a target
triple value. For example, let $TC is a toolchain installation directory.
If we compile big-endian 32-bit mips code, crtbegin.o is in the
$TC/lib/gcc/mips-linux-gnu/4.7.2 folder and the toolchain's linker requires
--sysroot=$TC/mips-linux-gnu/libc argument. If we compile little-endian
32-bit soft-float mips code, crtbegin.o is in the
$TC/lib/gcc/mips-linux-gnu/4.7.2/soft-float/el folder and the toolchain's
linker requires --sysroot=$TC/mips-linux-gnu/libc/soft-float/el argument.

1. Calculate MultiarchSuffix using all necessary command line options and
use this MultiarchSuffix to detect crtbegin.o location in the
GCCInstallationDetector::ScanLibDirForGCCTriple() routine.
2. If a user does not provide --sysroot argument to the driver explicitly,
calculate new sysroot value based on command line options. Then use this
calculated sysroot path:
a. To populate a file search paths list in the Linux::Linux() constructor.
b. To find Mips toolchain specific include headers directories
in the Linux::AddClangSystemIncludeArgs() routine.
c. To provide -–sysroot argument for a linker.

Note:
- The FSF's tree slightly differs (folder names) and is not supported
yet.
- New addExternCSystemIncludeIfExits() routine is a temporary solution.
I plan to move path existence check to the addExternCSystemInclude()
routine by a separate commit.

The patch reviewed by Rafael Espindola.
http://llvm-reviews.chandlerc.com/D644

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179934 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
d44d04f571c25ed258ece30bd2da5ca23d3a0b0d 14-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Add driver support for fedora 18 on ARM.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179484 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
8cfb720c857e66b7fb64bf3cb80fd82fcd0c0ac3 12-Apr-2013 John McCall <rjmccall@apple.com> Fix the driver logic for recent versions of DragonFly.

Patch by John Marino.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179334 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
52ca70dc304c694923ac804630d88b1d95bfa941 09-Apr-2013 Peter Collingbourne <peter@pcc.me.uk> If the user requested a zero-base-shadow sanitizer, infer -pie and -fPIC when appropriate.

Differential Revision: http://llvm-reviews.chandlerc.com/D502

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179082 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
577bb0a2335295958b3b0f88bc9cdedf6551c17f 28-Mar-2013 Thomas Schwinge <thomas@schwinge.name> Rename clang::driver::tools::linuxtools to clang::driver::tools::gnutools.

This is about the GNU Binutils' assembler and linker, so reflect that in the
name.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178272 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
d52b4a9924f45c45a965a569ad179db25bb1af00 28-Mar-2013 Thomas Schwinge <thomas@schwinge.name> Rename LinuxDistro to Distro.

The concept of such a software distribution is not tied to the Linux kernel;
for example Debian GNU/Linux, Debian GNU/Hurd, and Debian GNU/kFreeBSD all
share the same source packages and generally the same user-space configuration.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178270 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
3656c612efe4889da0174ffa6a621a2d59fc3ecb 21-Mar-2013 Alexander Potapenko <glider@google.com> [ASan] Let the users to invoke `clang -fsanitize=address` to link binaries targeting the iOS simulator.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177633 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
f48b93cb2054e83e43ca4391b8ec70be89fa2e30 20-Mar-2013 Rafael Espindola <rafael.espindola@gmail.com> Remove the Tools DensMap from the toolchain.

Each toolchain has a set of tools, but they are all of known types. It can
have a linker, an assembler, a "clang" (compile, analyze, ...) a non-clang
compiler, etc.

Instead of keeping a map, just have member variable for each type of tool.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177479 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
c0a55d12caff98504eace18b553bb111160a8131 19-Mar-2013 Rafael Espindola <rafael.espindola@gmail.com> Finish refactoring the tool selection logic.

The general pattern now is that Foobar::constructTool only creates tools
defined in the tools::foobar namespace and then delegates to the parent.

The remaining duplicated code is now in the tools themselves.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177368 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
8a1115f382cd61f560b3429a04ddaa70d9409b71 19-Mar-2013 Rafael Espindola <rafael.espindola@gmail.com> Centralize the logic for using the integrated assembler.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177360 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
5b222059399ec9cccba7a393dc470adfb8a3db0f 18-Mar-2013 Rafael Espindola <rafael.espindola@gmail.com> Centralize the recording of which tools have been constructed.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177319 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
f3260565f46491a0d99e41d47a13767218242ce5 18-Mar-2013 Rafael Espindola <rafael.espindola@gmail.com> Use early returns when checking if we already constructed a tool and when
delegating to Generic_GCC::SelectTool (it already updates the tool map).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177305 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
26adbe42d1fecd135dea6739ec2801f02473218f 18-Mar-2013 Rafael Espindola <rafael.espindola@gmail.com> Remove unused argument.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177303 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
af370e6e051e505016637e23418354db625dc796 18-Mar-2013 Rafael Espindola <rafael.espindola@gmail.com> Pass an ArgList to every toolchain constructor. Remove the useIntegratedAs
argument.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177301 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
5470cd27e47aea163daaa76dde36010753400663 18-Mar-2013 Rafael Espindola <rafael.espindola@gmail.com> Refactor a bit of duplicated code to useIntegratedAs.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177299 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
e5dce308870cd7d6b5156640af3724433bc1c575 18-Mar-2013 Rafael Espindola <rafael.espindola@gmail.com> Remove unused argument.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177293 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
d5320184367b681087e9ff74fc57ed2c5954c8ec 18-Mar-2013 Rafael Espindola <rafael.espindola@gmail.com> Remove unused argument.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177287 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
b7e86be4412635d34b2bf161e1b8bbf00be055c9 15-Mar-2013 Sylvestre Ledru <sylvestre@debian.org> Take in account the triplet 'powerpc-linux-gnuspe' for PowerPC SPE. Done for the port of Debian on this arch. More information on: http://wiki.debian.org/PowerPCSPEPort Patch by Roland Stigge

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177161 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
f2e7c35ade3d28ef1c5ad91f757a7993b0006bbe 06-Mar-2013 Dmitri Gribenko <gribozavr@gmail.com> Driver: add support for new style multiarch in Ubuntu 13.04

Patch by Sanne Wouda.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176557 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
2503ebd2cf9b4d28319551debaacff8b38765698 04-Mar-2013 Bob Wilson <bob.wilson@apple.com> Add ARM v6m, v7m, and v7em architectures for Cortex-M series processors.

<rdar://problem/11314476>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176458 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
59320e770f90a59c74f2be10f198e3c390195628 21-Feb-2013 Eric Christopher <echristo@gmail.com> Remove the SplitDebug action and replace with a set of commands
in the compilation setup. Note that this doesn't currently
work for -no-integrated-as.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175813 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
c706c8e440abf61910c042380e19c67932998395 05-Feb-2013 Eric Christopher <echristo@gmail.com> Driver and option support for -gsplit-dwarf. This is a part of
the DWARF5 split dwarf proposal.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174349 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
4f4e2af2643c1914c2e49ac6372f7c2c38616432 05-Feb-2013 Eric Christopher <echristo@gmail.com> Spaces instead of tabs.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174348 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
c264e16a42b3f6c36521857a29ea0949d9781c22 31-Jan-2013 Tim Northover <Tim.Northover@arm.com> Add support for AArch64 target.

In cooperation with the LLVM patch, this should implement all scalar front-end
parts of the C and C++ ABIs for AArch64.

This patch excludes the NEON support also reviewed due to an outbreak of
batshit insanity in our legal department. That will be committed soon bringing
the changes to precisely what has been approved.

Further reviews would be gratefully received.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174055 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
454028e1beed117f98d7e5157ba47e784e521f72 22-Jan-2013 Alexander Potapenko <glider@google.com> [ASan] Link with the dynamic runtime on OS X
This patch changes the behavior of the -fsanitize=address flag, making it use the dynamic runtime library (libclang_rt.asan_osx_dynamic.dylib) instead of the static one. It also drops the CoreFoundation dependency, since the dynamic runtime doesn't need it.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173135 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
2cb3d300ecd36558bf2201debe28808d12a97be2 21-Jan-2013 Alexey Samsonov <samsonov@google.com> Port r172856: 'Include ubsan runtime even when building a shared library. We don't require executable to be linked with UBSan.' to Mac

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173014 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
321425445f4ce31ccf477bea3240d05e0b1625b2 15-Jan-2013 Daniel Dunbar <daniel@zuster.org> [driver/Darwin] Adjust SDKROOT handling code to not generate "-isysroot /".

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172548 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
cfa88f893915ceb8ae4ce2f17c46c24a4d67502f 12-Jan-2013 Dmitri Gribenko <gribozavr@gmail.com> Remove useless 'llvm::' qualifier from names like StringRef and others that are
brought into 'clang' namespace by clang/Basic/LLVM.h


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172323 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
ca1ad5018da214b9ff584f57288258424eb76089 10-Jan-2013 Will Dietz <wdietz2@illinois.edu> ToolChains: Minor touchup to use correct type, avoid truncation.

Truncation happens regularly when find_first_not_of returns npos,
strings long enough to trigger bug here are implausible.

No functionality change intended (ignoring absurd string lengths).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172127 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
b17185204db26c59e329f6f0af96e7265fd084ba 06-Jan-2013 Sylvestre Ledru <sylvestre@debian.org> Prepare for the upcoming version of Debian (jessie)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171655 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
5ba0c8e4077902f53e5f3e8271e470a1d8c1c074 29-Dec-2012 Chandler Carruth <chandlerc@gmail.com> Fix a typo that caused a few standard library implementations of sort to
get the wrong answer. Wasn't caught by my implementation sadly...

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171222 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
f1757659dd59a0e07e8607fca8d3f052e04d0aec 29-Dec-2012 Chandler Carruth <chandlerc@gmail.com> Try to re-structure the GCCVersion comparison routine to make it easier
to read and tell that it is a SWO -- we now descend through the
components and return a result at the first inequal component.

Also comment it a bit better and make it a total ordering by sorting on
the text of the suffix if necessary.

None of this should really be a visible change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171219 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
bb6a7e047aefd9ba4bab3ce1dcbb7ce2e2895b07 21-Dec-2012 Rafael Espindola <rafael.espindola@gmail.com> Update comments.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170890 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
a367a0236211dd2c81a363c4b47b40e0ac6a8797 20-Dec-2012 Rafael Espindola <rafael.espindola@gmail.com> Fix Generic_GCC::GCCVersion::operator<

Without this patch comparing two equal versions without patch numbers (4.7 for
example) will result in A < B and B < A.

Patch by Simon Atanasyan.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170705 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
d7dfd98f07f6af9416b342825217022f2e970a66 20-Dec-2012 Chad Rosier <mcrosier@apple.com> [driver] Have -isysroot warn on nonexistent paths.
rdar://12282267

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170611 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
de39d1752f1559060237f158e47af6527d5e4abe 13-Dec-2012 Rafael Espindola <rafael.espindola@gmail.com> Add support for current Ubuntu Quantal and the upcoming Raring.
Patch by Martin Nowack.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170147 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
27fa2364b05ab26138c2ecf0eac1937b7fc6c037 13-Dec-2012 Rafael Espindola <rafael.espindola@gmail.com> Initial support for FreeBSD on ARM.
Patch by Andrew Turner.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170096 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
2a907f8735cee8ae145ffded6d8dfb1e8cf29b28 07-Dec-2012 NAKAMURA Takumi <geek4civic@gmail.com> Driver/ToolChains.cpp: Add the name CentOS5 32bit gcc44 (aka i386-redhat-linux6E).

Thanks to Bruce Stephens.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169610 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
c57d158c2900185d7828a92ca8db7b877ef1a621 07-Dec-2012 Logan Chien <tzuhsiang.chien@gmail.com> Revert r169557. It seems that the test is too restricted
and will break the build on buildbot.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169562 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
cd15652e632dea25ba5157dcef13963b7b0b79ea 06-Dec-2012 Logan Chien <tzuhsiang.chien@gmail.com> Add i686-linux-android for gcc toolchain detection.

* Look for i686-linux-android under <sysroot>/lib/gcc.

* This patch also slightly enhance the test suite for
Android GCC toolchain detection.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169557 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
5fdf350e39c6e260602dbbd709101a9bb55e75f1 06-Dec-2012 Matthew Curtis <mcurtis@codeaurora.org> Hexagon TC: Reimplement Link::ConstructJob to call
linker directly

Rather than calling gcc.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169512 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
6781415fa6d98aed548e84a70f1cd3ec31bba7d3 06-Dec-2012 Matthew Curtis <mcurtis@codeaurora.org> Hexagon TC: Move getHexagonTargetCPU from Tools.cpp to
ToolChains.cpp

This is in anticipation of forthcoming library path changes.

Also ...
- Fixes some inconsistencies in how the arch is passed to tools.
- Add test cases for various forms of arch flags

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169505 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
b3489a0d355128f1cc96fdde2a6b11a8361d6740 06-Dec-2012 Matthew Curtis <mcurtis@codeaurora.org> Hexagon TC: Update toolchain to add appropriate include
paths

- Inherit from Linux rather than ToolChain
- Override AddClangSystemIncludeArgs and AddClangCXXStdlibIncludeArgs
to properly set include paths.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169495 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
5542635a0fcfcd4b96eecf6f08e3648bd5bf739c 04-Dec-2012 NAKAMURA Takumi <geek4civic@gmail.com> ToolChains.cpp: Fixup r169260, clang/Config/config.h needs to be listed *last*, or llvm/Config/llvm-config.h could not be read in header files.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169268 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
00a3cccb8cbd9accddfa0e77e85939e263d6a10d 04-Dec-2012 Chandler Carruth <chandlerc@gmail.com> Autotools has the same include guard for both Clang and LLVM's config.h.
Shuffling order causes the wrong one to win.

CMake didn't exhibit this problem because Clang's has *no* guards.

I'll fix this properly tomorrow when Eric and I can check both build
systems and get them to DTRT, but for now unbreak some bots by hoisting
this header.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169260 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
55fc873017f10f6f566b182b70f6fc22aefa3464 04-Dec-2012 Chandler Carruth <chandlerc@gmail.com> Sort all of Clang's files under 'lib', and fix up the broken headers
uncovered.

This required manually correcting all of the incorrect main-module
headers I could find, and running the new llvm/utils/sort_includes.py
script over the files.

I also manually added quite a few missing headers that were uncovered by
shuffling the order or moving headers up to be main-module-headers.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169237 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
66b8a6671bb5df540dd7200a5286f7ed7a72c1cc 23-Nov-2012 Bob Wilson <bob.wilson@apple.com> Reapply a subset of r167567 to clean up Darwin-specific code for invoking gcc.

Unlike my previous attempt at this, this patch leaves intact the check for
whether clang can handle the input file type, and for non-Darwin toolchains it
will invoke gcc for things it cannot handle. For Darwin toolchains, the
behavior reported in pr14338 still occurs with this patch, but that is a
definite improvement from what happens currently, where it just crashes with
an assertion failure.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168505 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
a6b2581f9595fb803fe7e2ef1d9f25e75b26d2fb 22-Nov-2012 Chandler Carruth <chandlerc@gmail.com> Fix the '-fuse-init-array' option to actually be an option.

Previously, this flag to CC1 was never exposed at the clang driver
layer, and if you happened to enable it (by being on Android or GCC 4.7
platform), you couldn't *disable* it, because there was no 'no' variant.
The whole thing was confusingly implemented.

Now, the target-specific flag processing gets the driver arg list, and
we use standard hasFlag with a default based on the GCC version and/or
Android platform. The user can still pass the 'no-' variant to forcibly
disable the flag, or pass the positive variant to clang itself to enable
the flag.

The test has also been substantially cleaned up and extended to cover
these use cases.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168473 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
69b77d7fb3265e0e18c91badd50b4cb23dddf3e7 21-Nov-2012 Alexey Samsonov <samsonov@google.com> [Sanitizer] force linking with static sanitizer runtimes on Darwin even if they are not found in resource directory. Add test checking sanitizer linker flags on Darwin.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168428 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
18c2842b014a3eafae40dccd713587fa2235772c 19-Nov-2012 Logan Chien <tzuhsiang.chien@gmail.com> Enable -fuse-init-array for Android X86/MIPS.

The dynamic linker of Android does not support .ctors/.dtors.
We should emit .init_array and .fini_array regardless the
gcc version.

NOTE: This patch does not affect the ARM backend, because
it is required to generate .init_array and .fini_array
for program targeting ARM AAPCS and AEABI.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168309 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
7ce816a77dc79f71950e9e96185e3523ee08994b 19-Nov-2012 Chandler Carruth <chandlerc@gmail.com> Completely re-work how the Clang driver interprets PIC and PIE options.

There were numerous issues here that were all entangled, and so I've
tried to do a general simplification of the logic.
1) The logic was mimicing actual GCC bugs, rather than "features". These
have been fixed in trunk GCC, and this fixes Clang as well. Notably,
the logic was always intended to be last-match-wins like any other
flag.
2) The logic for handling '-mdynamic-no-pic' was preposterously unclear.
It also allowed the use of this flag on non-Darwin platforms where it
has no actual meaning. Now this option is handled directly based on
tests of how llvm-gcc behaves, and it is only supported on Darwin.
3) The APIs for the Driver's ToolChains had the implementation ugliness
of dynamic-no-pic leaking through them. They also had the
implementation details of the LLVM relocation model flag names
leaking through.
4) The actual results of passing these flags was incorrect on Darwin in
many cases. For example, Darwin *always* uses PIC level 2 if it uses
in PIC level, and Darwin *always* uses PIC on 64-bit regardless of
the flags specified, including -fPIE. Darwin never compiles in PIE
mode, but it can *link* in PIE mode.
5) Also, PIC was not always being enabled even when PIE was. This isn't
a supported mode at all and may have caused some fallout in builds
with complex PIC and PIE interactions.

The result is (I hope) cleaner and clearer for readers. I've also left
comments and tests about some of the truly strage behavior that is
observed on Darwin platforms. We have no real testing of Windows
platforms and PIC, but I don't have the tools handy to figure that out.
Hopefully others can beef up our testing here.

Unfortunately, I can't test this for every platform. =/ If folks have
dependencies on these flags that aren't covered by tests, they may
break. I've audited and ensured that all the changes in behavior of the
existing tests are intentional and good. In particular I've tried to
make sure the Darwin behavior (which is more suprising than the Linux
behavior) also matches that of 'gcc' on my mac.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168297 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
75fcb193aeeec5c4f10cc39df60a5ce7526b1b28 16-Nov-2012 Alexey Samsonov <samsonov@google.com> UBSan: enable proper linking with UBsan runtime on Darwin. Turn on building ubsan on OS X in 'make' build system. Patch by Jean-Daniel Dupas.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168168 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
5bab9ae87c41148ee2f92d312945c1e9303222e8 15-Nov-2012 Nick Lewycky <nicholas@mxc.ca> Revert r167567, restoring the ability of clang to run gcc in cases where it
can't handle the input file type. This resulted in PR14338.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168024 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
377e5c108bd299930ca8e8cb6ebce1d22dfe35f9 09-Nov-2012 Bob Wilson <bob.wilson@apple.com> Remove old driver code to grab the iOS simulator version from the -D option.

We can now rely on the -mios-simulator-version-min command line option
and remove the awful hack. <rdar://problem/10304510>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167603 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
458871a13c9f07bb46b4a32e3add0c9cb730f26e 09-Nov-2012 Bob Wilson <bob.wilson@apple.com> Remove more code related to invoking llvm-gcc. <rdar://problem/11991320>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167598 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
85b7f7ddf2f09778ec303f5a39f9e67e3aae1115 08-Nov-2012 Bob Wilson <bob.wilson@apple.com> Rip out a bunch of code for invoking gcc from clang.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167567 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
64c4f29ff3b98d412e0235504364096e997b04bb 08-Nov-2012 Bob Wilson <bob.wilson@apple.com> Remove code to fall back to llvm-gcc for i386 kexts.

More cleanups to follow in separate commits....

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167566 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
bb1071c0568db9bd7934e869a53d671632eb9291 06-Nov-2012 Alexey Samsonov <samsonov@google.com> Follow-up for r167411 to un-break ASan on Mac. Move SanitizerArgs to a header file and use it on Darwin toolchain.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167460 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
1d489cf4a04ad0ad8ac2696e4eed0995f3a67288 01-Nov-2012 Richard Smith <richard-llvm@metafoo.co.uk> Remove first argument from Arg::getValue; it's been unused since r105760.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167211 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
cfed8283c3aeb03ddd837411467d19e250068d39 31-Oct-2012 Rafael Espindola <rafael.espindola@gmail.com> getArchTypeForDarwinArchName is only used in the clang driver, copy it there.
I will remove it from llvm in the next commit.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167156 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
f4bd32957c686891cbdb7e2124630f6686343a2a 21-Oct-2012 Simon Atanasyan <satanasyan@mips.com> Add support of MIPS n32 ABI to the Clang driver. The fix builds correct library/object files paths and passes appropriate command line options to the linker if user provides -mabi=n32 option.

The patch reviewed by Rafael Espindola.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166389 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
91e06dab9335ed6b4474a74353549c708cf3d936 20-Oct-2012 Michael J. Spencer <bigcheesegs@gmail.com> [Options] Make Option non clang specific.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166348 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
e4151c5d1b48efac740b89cc16e5054850cbdecb 20-Oct-2012 Michael J. Spencer <bigcheesegs@gmail.com> [Options] make Option a value type.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166347 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
f38523388174760dcbad810ef60d8504d7df6b4c 19-Oct-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> Revert r166223 and the subsequent commits that depend on it, r166230 & r166235.

This seems to have introduced assertion hit when building compiler-rt.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166245 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
d2deb91b02ae1d810719e4a5a63dc404f362575a 18-Oct-2012 Michael J. Spencer <bigcheesegs@gmail.com> [Options] Make Option non clang specific.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166230 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
97b8fd941475ec233b329a21a4ec94698f8a4b5b 18-Oct-2012 Michael J. Spencer <bigcheesegs@gmail.com> [Options] make Option a value type.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166223 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
7a0c064770355a4918df69f95de8dea6338a59a2 16-Oct-2012 Daniel Dunbar <daniel@zuster.org> Un-revert r164907 and r164902 (+ follow-ups), 10.6 build fix to follow.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165988 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
dc0d4e251b4c41b75c5d93f1866a8a0952b1c6ae 15-Oct-2012 Nico Weber <nicolasweber@gmx.de> Revert r164907 and r164902 (+ follow-ups). They broke building on 10.6.

See PR14013.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165962 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
bc0a925caac5e1a8201af4e8500da0bc4bd4d955 11-Oct-2012 Eric Christopher <echristo@gmail.com> Revert "[Options] make Option a value type."

Author: Michael J. Spencer <bigcheesegs@gmail.com>
Date: Wed Oct 10 21:48:26 2012 +0000

[Options] make Option a value type.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165663 91177308-0d34-0410-b5e6-96231b3b80d8

This reverts commit 0464fd5e4ce2193e786e5adcab6b828f9366dae3.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165667 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
0464fd5e4ce2193e786e5adcab6b828f9366dae3 10-Oct-2012 Michael J. Spencer <bigcheesegs@gmail.com> [Options] make Option a value type.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165663 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
8e6881dfa47ec5bd95f1d6d83f302482c242e073 08-Oct-2012 Chandler Carruth <chandlerc@gmail.com> Make Bitrig's clang understand -stdlib= correctly.
With this patch Bitrig can use a different c++ library without pain and
within the normal commandline parameters.

Original patch by David Hill, with lots of fixes and cleanup by me.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165430 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
64f7ad9328e877779ec63638f39de4e10d2ff276 07-Oct-2012 Rafael Espindola <rafael.espindola@gmail.com> Use getArch instead of getArchName + string compare.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165370 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
a4a809e23ef17bef21afc50e70412a77567807ae 07-Oct-2012 Rafael Espindola <rafael.espindola@gmail.com> Use getArch instead of getArchName.

The darwin change should be a nop since Triple::getArchTypeForDarwinArchName
doesn't know about amd64.

If things like amd64-mingw32 are to be rejected, we should print a error
earlier on instead of silently using the wrong abi.

Remove old comment that looks out of place, this is "in clang".

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165368 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
f8d9bd546811a56ebb0b581ce4cc6043b51659a1 03-Oct-2012 Simon Atanasyan <satanasyan@mips.com> Implement Adnroid MIPS toolchain support:
1. Add mipsel-linux-android to the list of valid MIPS target triples.
2. Add <gcc install path>/mips-r2 to the list of toolchain specific path
prefixes if target is mipsel-linux-android.

The patch reviewed by Logan Chien.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165131 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
f2f3ce54fc1235bec2d0d0b0ef3b53bdff6d9655 30-Sep-2012 Bob Wilson <bob.wilson@apple.com> Add Clang support for iOS6.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164907 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
336bfa3fb496228a8ab4070def5b4297e5f88358 30-Sep-2012 Bob Wilson <bob.wilson@apple.com> Add armv7s and some other arm variants supported by Mach-O files.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164905 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
03a86385d6628398e1671db1d1970eb83ef0f8b3 23-Sep-2012 Rafael Espindola <rafael.espindola@gmail.com> Implement ToolChain::IsUnwindTablesDefault to reduce code duplication a bit.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164473 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
76f74ad696abe882e4ee6466913f554580ec5a59 23-Sep-2012 Rafael Espindola <rafael.espindola@gmail.com> On Hexagon getArchName() never returns x86_64, simplify the function.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164470 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
6f009b68b9f7aaf280144b0cd81d6a0b23c733a6 22-Sep-2012 Rafael Espindola <rafael.espindola@gmail.com> Fix pr13749. There is still a lot of code using getArchName that should be
using getArch, but I will try to fix them one at time to add tests.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164460 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
02014b485394cc93e0a2bd386e94424a5707ea69 19-Sep-2012 Hal Finkel <hfinkel@anl.gov> Add C/C++ header locations for the Freescale SDK.

The Freescale SDK is based on OpenEmbedded, and this might be useful
for other OpenEmbedded-based configurations as well.

With minor modifications, patch by Tobias von Koch!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164177 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
7a9188833a6a09d574144334c9584c417b809007 14-Sep-2012 Simon Atanasyan <satanasyan@mips.com> Do not use "lib32" directory to create a library/object files
paths when target is MIPS 32-bit.

The patch reviewed by Chandler Carruth.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163898 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
2df67ea86f64c2a94b973d8fda2e3c1fd53fc84d 13-Sep-2012 Silviu Baranga <silviu.baranga@arm.com> This patch introduces A15 as a target in Clang.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163804 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
1d01afe4d5883d7ec538b739aa7922d7de46f192 03-Sep-2012 Evgeniy Stepanov <eugeni.stepanov@gmail.com> Android standalone toolchain support.

This change adds detection of C++ headers and libraries paths when
building with the standalone toolchain from Android NDK. They are in a
slightly unusual place.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163109 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
94a7142f74bb4a9daa53c22087b19d4568073109 02-Sep-2012 Logan Chien <tzuhsiang.chien@gmail.com> Rename ANDROIDEABI to Android.

Most of the code guarded with ANDROIDEABI are not
ARM-specific, and having no relation with arm-eabi.
Thus, it will be more natural to call this
environment "Android" instead of "ANDROIDEABI".

Note: We are not using ANDROID because several projects
are using "-DANDROID" as the conditional compilation
flag.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163088 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
80fd37a57176433d05854dff27b9c5fa869fadd2 27-Aug-2012 John McCall <rjmccall@apple.com> Tweak the ARC-requires-10.6 diagnostic according to Jordan's review.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162651 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
0a7dd788dbef975f35f273c7ab913f480f7edd60 21-Aug-2012 John McCall <rjmccall@apple.com> Screw around with ObjCRuntime some more, changing the
diagnostics for bad deployment targets and adding a few
more predicates. Includes a patch by Jonathan Schleifer
to enable ARC for ObjFW.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162252 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
9101bc5f4d6defe71e8a368c5275f447da7769fd 17-Aug-2012 Daniel Dunbar <daniel@zuster.org> darwin/driver: Support using SDKROOT to define the default for -isysroot.
- The SDKROOT environment variable is the de facto way to set the default SDK
for a number of tools, join forces with them.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162116 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
42f74f21ece01dc8573d5377859d327fbb23b26c 09-Aug-2012 Eli Friedman <eli.friedman@gmail.com> clang support for Bitrig (an OpenBSD fork); patch by David Hill.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161546 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
ff104a12d61d34af67f12a7a966847c821d7afa8 31-Jul-2012 Jiangning Liu <jiangning.liu@arm.com> Support ARM hard float (arm-linux-gnueabihf).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161038 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
a1ec3db3a1ab7c37f1d7604bef777fe54711d8f0 19-Jul-2012 Bob Wilson <bob.wilson@apple.com> Force the OS X version to 10.6 for old-style simulator builds.

The hack of recognizing a -D__IPHONE_OS_VERSION_MIN_REQUIRED option
in place of -mios-simulator-version-min leaves the Darwin version
unspecified. It can be set separately with -mmacosx-version-min (which
makes no sense) or inferred to match the host version (which is unpredictable
and usually wrong). This really needs to get cleaned up, but in the
meantime, force the OS X version to 10.6 so that the behavior is sane for
the iOS simulator. Thanks for Argyrios for the patch.
<rdar://problem/11858187>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160484 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
0337efdba2b9477c2655cbb176d59c492a823aa4 11-Jul-2012 Chad Rosier <mcrosier@apple.com> [driver] Fix so that clang can find correct path prefix for libc object files
from GNU binutils supporting multi-arch folder for ARM target.
Patch by Jiangning Liu <jiangning.liu@arm.com>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160060 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
e48601573b9631600f563957476edb3b9cd41387 21-Jun-2012 John McCall <rjmccall@apple.com> Adjust this code so that it strictly honors
TargetSimulatroVersionFromDefines if present; this also makes
it easier to chain things correctly. Noted by an internal
review.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158926 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
260611a32535c851237926bfcf78869b13c07d5b 20-Jun-2012 John McCall <rjmccall@apple.com> Restructure how the driver communicates information about the
target Objective-C runtime down to the frontend: break this
down into a single target runtime kind and version, and compute
all the relevant information from that. This makes it
relatively painless to add support for new runtimes to the
compiler. Make the new -cc1 flag, -fobjc-runtime=blah-x.y.z,
available at the driver level as a better and more general
alternative to -fgnu-runtime and -fnext-runtime. This new
concept of an Objective-C runtime also encompasses what we
were previously separating out as the "Objective-C ABI", so
fragile vs. non-fragile runtimes are now really modelled as
different kinds of runtime, paving the way for better overall
differentiation.

As a sort of special case, continue to accept the -cc1 flag
-fobjc-runtime-has-weak, as a sop to PLCompatibilityWeak.

I won't go so far as to say "no functionality change", even
ignoring the new driver flag, but subtle changes in driver
semantics are almost certainly not intended.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158793 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
8af669f2f1d92436fe6dc43144bb084a620e7516 19-Jun-2012 Rafael Espindola <rafael.espindola@gmail.com> Add a -fuse-init-array option to cc1 and map to the UseInitArray target
option. On the driver, check if we are using libraries from gcc 4.7 or newer
and if so pass -fuse-init-array to the frontend.
The crtbegin*.o files in gcc 4.7 no longer call the constructors listed in
.ctors, so we have to use .init_array.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158694 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
d6277fb9e0353edffc0d6c8655a65542c08cf6f1 21-May-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> [driver] When creating the compiler invocation out of command-line
arguments, force use of clang frontend for the driver.

Fixes rdar://11356765.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157205 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
91720917d4ea35af0f9f15eeebf0daf709c41e98 15-May-2012 Gabor Greif <ggreif@gmail.com> add embedded linux variants that occur in the field

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156813 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
49033207b75216a956f3dbf7d018fb3343a54ec1 09-May-2012 Chad Rosier <mcrosier@apple.com> Roll logic into a single if statement, per David's suggestion.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156502 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
8c990274ae17cf7c56048ee453b0566515633b7f 09-May-2012 Chad Rosier <mcrosier@apple.com> Use the triple directly, rather then getTriple().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156501 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
c793ea42d7afd567c3cdd900cfa72398b2b38cd5 09-May-2012 Chad Rosier <mcrosier@apple.com> Now the proper fix for r156497. Sorry for the churn.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156498 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
4ec2678021a4621228321958b3641540f27a834a 09-May-2012 Chad Rosier <mcrosier@apple.com> Move the iOSVersionMin string to a header so as to avoid a dangling pointer.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156497 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
87ca5580302561c839b2cd12207902b9bf4ed117 09-May-2012 Chad Rosier <mcrosier@apple.com> [driver] Use the iOS target triple to infer the deployment target.
rdar://11409204


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156489 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
4206c27768e15865f936a9bdb8ea082087118b78 03-May-2012 Bob Wilson <bob.wilson@apple.com> Rip out old code for finding libraries in GCC's directories.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156058 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
4e1b292146936432dd6c76ba413f700eb1cd3432 01-May-2012 Douglas Gregor <dgregor@apple.com> Add support for openSUSE 12.2, from Ismail Donmez!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155860 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
8202fb8ee3c86797f737413de6030a88c8e0781c 27-Apr-2012 Chad Rosier <mcrosier@apple.com> [driver] Don't try to set the deployment target when there is no bound
architecture; this was happening for tools such as lipo and dsymutil.
Also, if no -arch option has been specified, set the architecture based
on the TC default.
rdar://11329656


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155730 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
c97e96a61fca41e84d5af3027b91cc1db32f1654 27-Apr-2012 Chad Rosier <mcrosier@apple.com> Revert 155679; Not a typo.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155708 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
e9a4c01978f505f1fd23e63d18230d30ebe29ed0 27-Apr-2012 Chad Rosier <mcrosier@apple.com> Typo.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155679 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
b8c4381ae046e7dea389567595b1df66e9553b18 26-Apr-2012 Simon Atanasyan <satanasyan@mips.com> MIPS: Add support for 64-bit MIPS targets: mips64 / mips64el.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155656 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
241cbe488c6f48e489915e256f532e22273d1eba 18-Apr-2012 Gabor Greif <ggreif@gmail.com> fix GCC version comparison wrt. equal patch suffices (and squash two typos)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154997 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
0407a04049016bdd6fe4fda462aa199d82c750d4 17-Apr-2012 Gabor Greif <ggreif@gmail.com> fix a typo

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154920 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
9f314374672a9c50d45ab60b96718cfbab06f484 06-Apr-2012 Chandler Carruth <chandlerc@gmail.com> Fix using Clang as a cross compiler installed on a host machine and not
inside of a sysroot targeting a system+sysroot which is "similar" or
"compatible" with the host system. This shows up when trying to build
system images on largely compatible hardware as-if fully cross compiled.

The problem is that previously we *perfectly* mimiced GCC here, and it
turns out GCC has a bug that no one has really stumbled across. GCC will
try to look in thy system prefix ('/usr/local' f.ex.) into which it is
instaled to find libraries installed along side GCC that should be
preferred to the base system libraries ('/usr' f.ex.). This seems not
unreasonable, but it has a very unfortunate consequence when combined
with a '--sysroot' which does *not* contain the GCC installation we're
using to complete the toolchain. That results in some of the host
system's library directories being searched during the link.

Now, it so happens that most folks doing stuff like this use
'--with-sysroot' and '--disable-multilib' when configuring GCC. Even
better, they're usually not cross-compiling to a target that is similar
to the host. As a result, searching the host for libraries doesn't
really matter -- most of the time weird directories get appended that
don't exist (no arm triple lib directory, etc). Even if you're
cross-compiling from 32-bit to 64-bit x86 or vice-versa, disabling
multilib makes it less likely that you'll actually find viable libraries
on the host. But that's just luck. We shouldn't rely on this, and this
patch disables looking in the system prefix containing the GCC
installation if that system prefix is *outside* of the sysroot. For
empty sysroots, this has no effect. Similarly, when using the GCC
*inside* of the sysroot, we still track wherever it is installed within
the sysroot and look there for libraries. But now we can use a cross
compiler GCC installation outside the system root, and only look for the
crtbegin.o in the GCC installation, and look for all the other libraries
inside the system root.

This should fix PR12478, allowing Clang to be used when building
a ChromiumOS image without polluting the image with libraries from the
host system.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154176 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
09c9a5635f10a7dfa3373ef0941597c16b048362 10-Mar-2012 Benjamin Kramer <benny.kra@googlemail.com> Use VersionTuple to manage macosx versions in the driver. No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152504 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
30660a898545416f0fea2d717f16f75640001e38 06-Mar-2012 Ted Kremenek <kremenek@apple.com> Add new code migrator support for migrating existing Objective-C code to use
the new Objective-C NSArray/NSDictionary/NSNumber literal syntax.

This introduces a new library, libEdit, which provides a new way to support
migration of code that improves on the original ARC migrator. We now believe
that most of its functionality can be refactored into the existing libraries,
and thus this new library may shortly disappear.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152141 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
ebcb57a8d298862c65043e88b2429591ab3c58d3 06-Mar-2012 Ted Kremenek <kremenek@apple.com> Add clang support for new Objective-C literal syntax for NSDictionary, NSArray,
NSNumber, and boolean literals. This includes both Sema and Codegen support.
Included is also support for new Objective-C container subscripting.

My apologies for the large patch. It was very difficult to break apart.
The patch introduces changes to the driver as well to cause clang to link
in additional runtime support when needed to support the new language features.

Docs are forthcoming to document the implementation and behavior of these features.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152137 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
5840dd9a09c458ef894e7d47caab1d90dc4c1112 29-Feb-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> [driver] Emit an error when trying to use ARC on macosx earlier than 10.6

rdar://10459258

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151706 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
079d2bbec5c14cfa5901aa579c6934f34484fc97 26-Feb-2012 Chandler Carruth <chandlerc@gmail.com> A follow-up to r151482 which added support for powerpc and powerpc64
Debian multiarch libraries, this should in theory add support for those
platform's header search rules. I don't have a system to check this
with, so review appreciated. I've added the corresponding tests
referring to the debian multiarch tree.

We are starting to have a relatively completely tested Linux platform
for header search and library search, with several interesting
peculiarities. We should point people at the debian_multiarch_tree when
suggesting new tests. Folks with Debian systems that can check this for
correctness, it would be much appreciated. The missing chunks I know of
are testing bi-arch peudo-cross-compiling toolchains betwen 32-bit and
64-bit variants of platforms, and the MIPS and ARM Debian toolchains.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151484 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
155c54c011ecc2ffdaf7759ec5dbbafafff40618 26-Feb-2012 Chandler Carruth <chandlerc@gmail.com> Add support for PPC and PPC64 multiarch toolchains on Debain.

Patch from Michel Dänzer, sent our way via Jeremy Huddleston who added
64-bit support. I just added one other place where powerpc64-linux-gnu
was missing (we only had powerpc64-unknown-linux-gnu).

I've also added a tree to test out the debian multiarch stuff. I don't
use debian regularly, so I'm not certain this is entirely accurate. If
anyone wants to check it against a debian system and fix any
inaccuracies, fire away. This way at least folks can see how this is
*supposed* to be tested.

It'd be particularly good to get the Debian MIPS toolchains tested in
this way.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151482 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
0e65959196b45d8afc89e9102c4fc4ec0d642066 19-Feb-2012 Rafael Espindola <rafael.espindola@gmail.com> Implement a -gcc-toolchain command line option that does the same as
configure's --with-gcc-toolchain. The configure option is now just a default
value for the command line one.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150898 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
31c4690047f5f362ecf886f1586844b1aef0c4d2 15-Feb-2012 David Chisnall <csdavec@swan.ac.uk> First pass at Solaris toolchain support. This version compiles and links hello
world on Solaris 11 for both x86 and x86-64 using the built-in assembler and
Solaris (not GNU) ld, however it currently relies on a hard-coded GCC location
to find crtbegin.o and crtend.o, as well as libgcc and libgcc_eh.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150580 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
cc8a94565ec2ff459dcee9ef34237fdcdfc69b3f 14-Feb-2012 Dylan Noblesmith <nobled@dreamwidth.org> include clang's config.h unconditionally (v2)

And remove HAVE_CLANG_CONFIG_H, now that the header is generated
in the autoconf build, too.

Reverts r149571/restores r149504, now that config.h is generated
correctly by LLVM's configure in all build configurations.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150487 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
9b338a7bca39a68ae9f8c57d9210f19f7e45b665 13-Feb-2012 Chandler Carruth <chandlerc@gmail.com> Delete a simplistic helper function now that llvm::Triple can provide
this functionality.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150358 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
d747efaad80117799ff7e2ab10608f18ee1348c1 11-Feb-2012 Chandler Carruth <chandlerc@gmail.com> Begin refactoring to use the newly added triple predicates for
simplicity. Also addresses a FIXME, although not one that could be
observed.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150294 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
afe55fbc10bb1f15f0f6b9d34c88d3a86475c8c9 06-Feb-2012 Benjamin Kramer <benny.kra@googlemail.com> - Turn the other distribution checks into range compares.
- Turn openSUSE version parsing into a StringSwitch
- Add an entry for Fedora release 16 (Verne)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149872 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
668ecd9c8d428bdb2cd3566c8caf83b870609b4a 06-Feb-2012 Benjamin Kramer <benny.kra@googlemail.com> Consolidate the ubuntu detection logic a bit, add an entry for Ubuntu 12.04 aka precise pangolin.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149869 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
f7ccbad5d9949e7ddd1cbef43d482553b811e026 05-Feb-2012 Dylan Noblesmith <nobled@dreamwidth.org> Basic: import SmallString<> into clang namespace

(I was going to fix the TODO about DenseMap too, but
that would break self-host right now. See PR11922.)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149799 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
6f42b62b6194f53bcbc349f5d17388e1936535d7 05-Feb-2012 Dylan Noblesmith <nobled@dreamwidth.org> Basic: import OwningPtr<> into clang namespace

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149798 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
353300c4af020ce5d8368d1c336cbf7583c33a7d 03-Feb-2012 Rafael Espindola <rafael.espindola@gmail.com> Replace the old --with-cxx-* configure options with a single --with-gcc-toolchain
that just uses the new toolchain probing logic. This fixes linking with -m32 on
64 bit systems (the /32 dir was not being added to the search).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149652 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
f2462be34a49e2108c9b4151f8e6d3fe1b916179 02-Feb-2012 Dylan Noblesmith <nobled@dreamwidth.org> back out r149504

Too many weird build failures.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149571 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
69d3b4f7c9fa818d2536b4f1b220b942ae392128 01-Feb-2012 Dylan Noblesmith <nobled@dreamwidth.org> include clang's config.h unconditionally

And remove HAVE_CLANG_CONFIG_H, now that the header is generated
in the autoconf build, too. (clang r149497 / llvm r149498)

Also include the config.h header after all other headers, per
the LLVM coding standards.

It also turns out WindowsToolChain.cpp wasn't using the config
header at all, so that include's just deleted now.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149504 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
4c5ffb32e89da30479da49b87abf560c81e4c210 31-Jan-2012 Bob Wilson <bob.wilson@apple.com> Use new Triple::getMacOSXVersion function.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149439 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
1085377d9b137e92fa0f9f9dfb674f6463719909 31-Jan-2012 Bob Wilson <bob.wilson@apple.com> Fix more fallout from the introduction of "macosx" and "ios" triples.

The Darwin toolchain constructor was assuming that all Darwin triples would
have an OS string starting with "darwin". Triples starting with "macosx"
would misinterpret the version number, and "ios" triples would completely
miss the version number (or worse) because the OS name is not 6 characters
long. We lose some sanity checking of triple strings here, since the
Triple.getOSVersion function doesn't do all the checking that the previous
code did, but this still seems like a step in the right direction.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149422 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
1d16f0f805c2a3e2198a87154990347b2759f6bd 31-Jan-2012 Chandler Carruth <chandlerc@gmail.com> Revert r149083 which is not the direction we're going in the Clang
driver based on discussions with Doug Gregor. There are several issues:
1) The patch was not reviewed prior to commit and there were review comments.
2) The design of the functionality (triple-prefixed tool invocation)
isn't the design we want for Clang going forward: it focuses on the
"user triple" rather than on the "toolchain triple", and forces that
bit of state into the API of every single toolchain instead of
handling it automatically in the common base classes.
3) The tests provided are not stable. They fail on a few Linux variants
(Gentoo among them) and on mingw32 and some other environments.

I *am* interested in the Clang driver being able to invoke
triple-prefixed tools, but we need to design that feature the right way.
This patch just extends the previous hack without fixing the underlying
problems with it. I'm working on a new design for this that I will mail
for review by tomorrow.

I am aware that this removes functionality that NetBSD relies on, but
this is ToT, not a release. This functionality hasn't been properly
designed, implemented, and tested yet. We can't "regress" until we get
something that really works, both with the immediate use cases and with
long term maintenance of the Clang driver.

For reference, the original commit log:
Keep track of the original target the user specified before
normalization. This used to be captured in DefaultTargetTriple and is
used for the (optional) $triple-$tool lookup for cross-compilation.
Do this properly by making it an attribute of the toolchain and use it
in combination with the computed triple as index for the toolchain
lookup.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149337 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
1bd91374498ac78e72545f08f4daa6491f9c9d14 26-Jan-2012 Joerg Sonnenberger <joerg@bec.de> Remove the ToolTriple logic in NetBSD, which was completely broken by
the recent refactoring. All interesting NetBSD release have a GNU as
version on i386 that supports --32, so don't bother with the conditional
setting of it.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149087 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
66de97fcc368ff7e9ea50337177d007c108cfd73 26-Jan-2012 Joerg Sonnenberger <joerg@bec.de> Remove obviously incorrect branch.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149084 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
34144f67610be0ac6cb0d85d77bd57662b9232b9 26-Jan-2012 Joerg Sonnenberger <joerg@bec.de> Keep track of the original target the user specified before
normalization. This used to be captured in DefaultTargetTriple and is
used for the (optional) $triple-$tool lookup for cross-compilation.
Do this properly by making it an attribute of the toolchain and use it
in combination with the computed triple as index for the toolchain
lookup.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149083 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
c01dfc18694bb7aa01c12bad3fb710938018728f 26-Jan-2012 Bob Wilson <bob.wilson@apple.com> Revert r148249: "Make the auto-detection hack for the iOS simulator set the target triple correctly."

There were some problems with this, so I'm backing it out for now.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149040 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
24248e3df04f3d687f819f6de3429130c4680a15 26-Jan-2012 Chandler Carruth <chandlerc@gmail.com> Reintroduce r148981 with significantly improved regression test. Now it
both actually tests what it wants to, doesn't have bogus and broken
assertions in it, and is also formatted much more cleanly and
consistently. Probably still some more that can be improved here, but
its much better.

Original commit message:
----
Try to unbreak the FreeBSD toolchain's detection of 32-bit targets
inside a 64-bit freebsd machine with the 32-bit compatibility layer
installed. The FreeBSD image always has the /usr/lib32 directory, so
test for the more concrete existence of crt1.o. Also enhance the tests
for freebsd to clarify what these trees look like and exercise the new
code.

Thanks to all the FreeBSD folks for helping me understand what caused
the failure and how we might fix it. =] That helps a lot. Also, yay
build bots.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149011 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
10afce37c6944acf1018138ef74ab69451d3aea6 25-Jan-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> Revert r148981 because it fails test/Driver/freebsd.c

Original log:

Author: chandlerc <chandlerc@91177308-0d34-0410-b5e6-96231b3b80d8>
Date: Wed Jan 25 21:32:31 2012 +0000

Try to unbreak the FreeBSD toolchain's detection of 32-bit targets
inside a 64-bit freebsd machine with the 32-bit compatibility layer
installed. The FreeBSD image always has the /usr/lib32 directory, so
test for the more concrete existence of crt1.o. Also enhance the tests
for freebsd to clarify what these trees look like and exercise the new
code.

Thanks to all the FreeBSD folks for helping me understand what caused
the failure and how we might fix it. =] That helps a lot. Also, yay
build bots.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148993 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
d081baa34b8b165d204a9e48c7c29d736f9d9317 25-Jan-2012 Chandler Carruth <chandlerc@gmail.com> Try to unbreak the FreeBSD toolchain's detection of 32-bit targets
inside a 64-bit freebsd machine with the 32-bit compatibility layer
installed. The FreeBSD image always has the /usr/lib32 directory, so
test for the more concrete existence of crt1.o. Also enhance the tests
for freebsd to clarify what these trees look like and exercise the new
code.

Thanks to all the FreeBSD folks for helping me understand what caused
the failure and how we might fix it. =] That helps a lot. Also, yay
build bots.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148981 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
00646ba867d63beeeb7124984795182cd5cc8b67 25-Jan-2012 Chandler Carruth <chandlerc@gmail.com> The Linux pattern of adding all the search paths that exist doesn't seem
to suit the FreeBSD folks. Take them back to something closer to the old
behavior. We test whether the /usr/lib32 directory exists (within the
SysRoot), and use it if so, otherwise use /usr/lib.

FreeBSD folks, let me know if this causes any problems, or if you have
further tweaks.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148953 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
32f88be6e2dbd950861858fb75b0a37b685d6267 25-Jan-2012 Chandler Carruth <chandlerc@gmail.com> Remove the 'ToolTriple' concept from the NetBSD toolchain along with my
gross hack to provide it from my previous patch removing HostInfo. This
was enshrining (and hiding from my searches) the concept of storing and
diff-ing the host and target triples. We don't have the host triple
reliably available, so we need to merely inspect the target system. I've
changed the logic in selecting library search paths for NetBSD to match
what I provided for FreeBSD -- we include both search paths, but put the
32-bit-on-64-bit-host path first so it trumps.

NetBSD maintainers, you may want to tweak this, or feel free to ask me
to tweak it. I've left a FIXME here about the challeng I see in fixing
this properly.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148952 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
4d7ff6e8639bdce74e39b90370729ad0179ebcca 25-Jan-2012 Chandler Carruth <chandlerc@gmail.com> Switch the ToolChain types to all store a Driver reference rather than
a HostInfo reference. Nothing about the HostInfo was used by any
toolchain except digging out the driver from it. This just makes that
a lot more direct. The change was accomplished entirely mechanically.
It's one step closer to removing the shim full of buggy copy/paste code
that is HostInfo.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148945 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
ea0428523b38298da44cdb894c481efa71fd4a56 25-Jan-2012 Chandler Carruth <chandlerc@gmail.com> Have FreeBSD use even more of the same smarts as Linux is now using for
adding search paths. Add them only when they exist, and prefix the paths
with the sysroot. This will allow targeting a FreeBSD sysroot on
a non-FreeBSD host machine, and perhaps more importantly should allow
testing the FreeBSD driver's behavior similarly to the Linux tests with
a fake tree of files in the regression test suite.

I don't have FreeBSD systems handy to build up the list of files that
should be used here, but this is the basic functionality and I'm hoping
Roman or someone from the community can contribute the actual test
cases.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148940 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
6f75cc3365da11c3677d961bbb11d1e86e3d2fc2 25-Jan-2012 Chandler Carruth <chandlerc@gmail.com> Switch FreeBSD to just include both '/usr/lib32' and '/usr/lib' in the
search paths for 32-bit targets. This avoids having to detect which is
expected for the target system, and the linker should DTRT, and take the
32-bit libraries from the first one when applicable. Thanks to Roman
Divacky for sanity checking this.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148939 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
fc52f7526ea0adfcbdbe76a3c4fcdcbb1f1b08b6 25-Jan-2012 Chandler Carruth <chandlerc@gmail.com> Switch the Linux C++ standard library header search logic over to use
the GCC installation's multiarch suffix now that it is exposed.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148938 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
1c6f04a28d8a8e3eca966385815305b13e0a6a05 25-Jan-2012 Chandler Carruth <chandlerc@gmail.com> Make a major refactoring to how the GCC installation detection works.

The fundamental shift here is to stop making *any* assumptions about the
*host* triple. Where these assumptions you ask? Why, they were in one of
the two target triples referenced of course. This was the single biggest
place where the previously named "host triple" was actually used as
such. ;] The reason we were reasoning about the host is in order to
detect the use of '-m32' or '-m64' flags to change the target. These
flags shift the default target only slightly, which typically means
a slight deviation from the host. When using these flags, the GCC
installation is under a different triple from the one actually targeted
in the compilation, and we used the host triple to find it.

Too bad that wasn't even correct. Consider an x86 Linux host which has
a PPC64 cross-compiling GCC toolchain installed. This toolchain is also
configured for multiarch compiling and can target PPC32 with eth '-m32'
flag. When targeting 'powerpc-linux-gnu' or some other PPC32 triple, we
have to look for the PPC64 variant of the triple to find the GCC
install, and that triple is neither the host nor target.

The new logic computes the multiarch's alternate triple from the target
triple, and looks under both sides. It also looks more aggressively for
the correct subdirectory of the GCC installation, and exposes the
subdirectory in a nice programmatic way. This '/32' or '/64' suffix is
something we can reuse in many other parts of the toolchain.

An important note -- while this likely fixes a large category of
cross-compile use cases, that's not my primary goal, and I've not done
testing (or added test cases) for scenarios that may now work. If
someone else wants to try more interesting PPC cross compiles, I'd love
to have reports. But my focus is on factoring away the references to the
"host" triple. The refactoring is my goal, and so I'm mostly relying on
the existing (pretty good) test coverage we have here.

Future patches will leverage this new functionality to factor out more
and more of the toolchain's triple manipulation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148935 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
89088797876bddb866ce821f050a4395b7514dc2 24-Jan-2012 Chandler Carruth <chandlerc@gmail.com> Fix one of the (larger) FIXMEs where we were misusing the Driver's idea
of the target triple to stand in for the "host" triple.

Thanks to a great conversation with Richard Smith, I'm now much more
confident in how this is proceeding. In all of the places where we
currently reason about the "host" architecture or triple, what we really
want to reason about in the detected GCC installation architecture or
triple, and the ways in which that differs from the target. When we find
a GCC installation with a different triple from our target *but capable
of targeting our target* through an option such as '-m64', we want to
detect *that* case and change the paths within the GCC installation (and
libstdc++ installation) to reflect this difference.

This patch makes one function do this correctly. Subsequent commits will
hoist the logic used here into the GCCInstallation utility, and then
reuse it through the rest of the toolchains to fix the remaining places
where this is currently happening.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148852 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
fa5be916273be4d2e0ef8db050c8bdd404b95555 24-Jan-2012 Chandler Carruth <chandlerc@gmail.com> Address one part of the FIXME I introduced my switching the triple
inside of GCCInstallation to be a proper llvm::Triple. This is still
a touch ugly because we have to use it as a string in so many places,
but I think on the whole the more structured representation is better.

Comments of course welcome if this tradeoff isn't working for folks.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148843 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
5d84bb418405e1256020a66895d163756886b102 24-Jan-2012 Chandler Carruth <chandlerc@gmail.com> At least within these classes, consistently spell 'GCC' as 'GCC'.
I can't read Java-style 'Gcc' acronyms. ;]

No functionality changed.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148840 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
58f2b298d80ccc06dd1d5f759a80fc5f6133d8ad 24-Jan-2012 Chandler Carruth <chandlerc@gmail.com> Start hoisting the logic for computing the target triple into its own
function. The logic for this, and I want to emphasize that this is the
logic for computing the *target* triple, is currently scattered
throughout various different HostInfo classes ToolChain factoring
functions. Best part, it is largely *duplicated* there. The goal is to
hoist all of that up to here where we can deal with it once, and in
a consistent manner.

Unfortunately, this uncovers more fun problems: the ToolChains assume
that the *actual* target triple is the one passed into them by these
factory functions, while the *host* triple is the one in the driver.
This already was a lie, and a damn lie, when the '-target' flag was
specified. It only really worked when the difference stemmed from '-m32'
and '-m64' flags. I'll have to fix that (and remove all the FIXMEs I've
introduced here to document the problem) before I can finish hoisting
the target-calculation logic.

It's bugs all the way down today it seems...

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148839 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
100d04165571d42437c8e74482534e69495540ec 16-Jan-2012 Eli Friedman <eli.friedman@gmail.com> Make the auto-detection hack for the iOS simulator set the target triple correctly. Getting the target triple wrong mostly appears to work, but messes up in subtle cases; for example, we incorrectly conclude that fwrite is actually named fwrite$UNIX2003. Also shuffles around the auto-detection code a bit to try and make it a bit more reliable. Fixes <rdar://problem/10664848>.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148249 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
9606a57b6f2c43bf438a958fdffea1de60f6b2b7 13-Jan-2012 Sebastian Pop <spop@codeaurora.org> rename DefaultHostTriple into DefaultTargetTriple

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148137 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
704e7328a119e6024c9f63b21329bc612098c6dd 13-Jan-2012 Evgeniy Stepanov <eugeni.stepanov@gmail.com> Remove --hash-style from link command on Android.

Gnu hash is not supported by the Android loader.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148113 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
983d835bead0134170a6646a8844926077c968d6 11-Jan-2012 Eli Friedman <eli.friedman@gmail.com> Revert changes to lib/Driver in r147917; I didn't mean to commit this.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147920 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
b69b42c55d56815bab62991bf839cdb41634d3af 11-Jan-2012 Eli Friedman <eli.friedman@gmail.com> Start refactoring code for capturing variables and 'this' so that it is shared between lambda expressions and block literals.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147917 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
b43550bf1bd944a16cdae9703cb1c2049b04e6bd 10-Jan-2012 Chandler Carruth <chandlerc@gmail.com> Add support for the androideabi environment to our triple support, and
for the arm-linux-androideabi triple in particular.

Also use this to do a better job of selecting soft FP settings.

Patch by Evgeniy Stepanov.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147872 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
0e743b1582d53d3ebb2074da881e00bfb759f250 28-Dec-2011 Rafael Espindola <rafael.espindola@gmail.com> Handle a /etc/debian_version with a version number instead of a codename.
Patch by Sylvestre Ledru. Fixes PR11673.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147313 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
99ba9e3bd70671f3441fb974895f226a83ce0e66 20-Dec-2011 David Blaikie <dblaikie@gmail.com> Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146959 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
79cbbdc8affe52591f7ee487a789639aa38331ec 18-Dec-2011 Chandler Carruth <chandlerc@gmail.com> Split the Windows toolchain definition into its own file. This is
especially nice as the Windows toolchain needs the windows header files,
and has lots of platform specific hooks in it.

To facilitate the split, hoist a bunch of file-level static helpers into
class-level static helpers. Spiff up their doxygen comments while there
as they're now more likely to be looked up via docs.

Hopefully, this will be followed by further breaking apart of the
toolchain definitions. Most of the large and complex ones should likely
live on their own. I'm looking at you Darwin. ;]

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146840 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
9631939f82c0eaa6fb3936a0ce58a41adfbc9011 12-Dec-2011 Tony Linthicum <tlinth@codeaurora.org> Hexagon backend support

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146413 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
d4e6e7e4a8c1f64162e14220579abab53e0ca10c 09-Dec-2011 Chandler Carruth <chandlerc@gmail.com> Fix the --hash-style option when the target is MIPS as it is
incompatible with the MIPS ABI.

Patch by Simon Atanasyan.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146243 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
6d402dc963aa32194f3604af4463b113858291ae 09-Dec-2011 Eli Friedman <eli.friedman@gmail.com> Misc Minix-specific changes to clang:

. move compiler-rt to a separate directory so the -L argument only includes compiler-rt (thanks joerg)
. build all clang subdirs
. switches the Minix platform to ELF
. normalizes toolchain invocation

Patch by Ben Gras.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146206 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
2e55df49929a515b05f3af89b47a13357eccd9d0 08-Dec-2011 Hal Finkel <hfinkel@anl.gov> Allow clang to find gcc libs on suse ppc64

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146142 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
c24767c9dd869ba0e78c2d4c86d86ed24b8e401e 08-Dec-2011 Daniel Dunbar <daniel@zuster.org> Driver: Add a --rtlib={compiler-rt,libgcc} argument which I plan to use to allow
dual support for compiler-rt on Linux, during bringup.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146094 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
1c636df9f47dcfe5633eca6965db84c2e83ccc58 07-Dec-2011 Eli Friedman <eli.friedman@gmail.com> Fix multilib library paths on ppc64 Linux. Patch by Michael Kostylev. PR11472.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146016 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
7b5f1013c5b7f541dc1fae7fc43189377874eabb 06-Dec-2011 Kostya Serebryany <kcc@google.com> [asan] Mac: do not link dynamic libs with the asan-rt, use -undefined dynamic_lookup for dynamic libs. Style fixes. Patch by glider@google.com

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145955 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
94b54ea787e439496fde16b3d2882d6d1b22d4f0 02-Dec-2011 Daniel Dunbar <daniel@zuster.org> Driver/Darwin: Add ASAN runtime library link support.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145651 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
7972c88f674475037fa11fea718565e5bcdd61a6 29-Nov-2011 Eli Friedman <eli.friedman@gmail.com> A couple driver fixes for PPC Linux. Patches by Michael Kostylev. PR11444/PR11445.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145321 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
f471487ff1e673531543576bc170898c2ab19f41 17-Nov-2011 Daniel Dunbar <daniel@zuster.org> clang/Darwin: Use the compiler-rt provided profile library.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144869 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
5a5dcdc9314204f103b879b5033a736af0e3462b 11-Nov-2011 Bob Wilson <bob.wilson@apple.com> Search for libstdc++.dylib in llvm-gcc's files on darwin10. rdar://10419079

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144381 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
d7df785e8ba3284c66c1a05537f9e1c8cc27d252 11-Nov-2011 Eli Friedman <eli.friedman@gmail.com> Add Linux multiarch include directories for mips/mipsel. Patch from Simon Atanasyan.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144358 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
d936d9d9abae0e5018fa0233aa51ac8390a6778f 09-Nov-2011 Chandler Carruth <chandlerc@gmail.com> Fix an issue that Duncan discovered on a specific (no longer current)
version of Ubuntu. It has a very broken multiarch configuration, and so
we need special logic to handle it correctly. Fixing and testing this
uncovered a few other trivial issues with the logic that are fixed as
well.

I added tests to cover this as it is hard to notice if you install
recent versions of the OS.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144165 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
5bea4f6860543017be326e3fbe702edb2678d898 08-Nov-2011 Eli Friedman <eli.friedman@gmail.com> Misc fixes for clang driver on Mips Linux. Patch by Simon Atanasyan.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144108 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
c44bc2d32f81d11b4c0e46c932ba42e673b50a49 08-Nov-2011 Chandler Carruth <chandlerc@gmail.com> Add a default system include of '/include'. This isn't particularly
useful when using Clang as a system-compiler, but its harmless. When
using Clang as a cross-compiler, this can be very handy as quite a few
toolchains ship their libc headers here rather than under
'/usr/include'.

For reference, this is the beginning of my work to also make the Clang
driver more suitable as a cross-compiler.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144089 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
07643086c6460095855573902d66aae1b08a6182 07-Nov-2011 Chandler Carruth <chandlerc@gmail.com> Rip out one of the features I added for the driver-include-management.
We don't actually need a separate flag for non-sysrooted paths as the
driver has to manage the sysroot anyways. The driver is not infrequently
adding paths to the header search based on their existence on the
filesystem. For that, it has to add the sysroot anyways, we should pass
it on down to CC1 already joined. More importantly, the driver cannot in
all cases distinguish between sysrooted paths and paths that are
relative to the Clang binary's installation directory. Essentially, we
always need to ignore the system root for these internal header search
options. It turns out in most of the places we were already providing
the system root in the driver, and then another one in CC1 so this fixes
several bugs.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143917 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
eb35ffc2174f7c4d622c6e81e3a4915ef077f470 07-Nov-2011 Chandler Carruth <chandlerc@gmail.com> Fix Linux libc++ usage. Somehow this slipped through during the port.

Test cases for this and all the rest of the port are still in the works,
but will wait for a fixed computer and post 3.0 merging...

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143916 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
b37fe61e661453800f826897706b1d75f98dd7c1 07-Nov-2011 Chandler Carruth <chandlerc@gmail.com> Begin lifting some of the one-off checking logic into generic helper
routines on the base toolchain class.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143900 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
19347edf7809866350750a1997ec4db009832fa4 07-Nov-2011 Chandler Carruth <chandlerc@gmail.com> Move the GCC installation detection logic down into the Generic_GCC
toolchain. The logic is mostly generic already, and where possible
should be made more generic. Also, it has no impact other than to expose
a set of methods which each toolchain can then query to setup their
desired configuration. These should be available to toolchains beyond
just Linux.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143899 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
089b272e6663997877138a6d274abfc537811340 07-Nov-2011 Chandler Carruth <chandlerc@gmail.com> Remove an old OpenSUSE hack that is no longer needed -- it is exactly
the same as a directory added further down in the new logic.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143897 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
d1f73060a9a5307fa665c2c17f82e19f959aacb5 07-Nov-2011 Chandler Carruth <chandlerc@gmail.com> Remove the HasMultilib check. It was essentially useless. The driver now
looks for evidence of a multilib installation, and adds the appropriate
bits to the search paths.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143896 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
7902d766dea6366b84bf65c671f1cbd7b31b9388 06-Nov-2011 Chandler Carruth <chandlerc@gmail.com> The version objects need to actually store the version strings; they
aren't guaranteed to live long enough otherwise.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143875 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
abaa1d7caf49d5e4774c3399de9329ab46de03a7 06-Nov-2011 Chandler Carruth <chandlerc@gmail.com> Throw the switch and move all Linux header search over to the GCC
detection system that is providing the library paths and crt object
files.

This, modulo any bugs that need to be shaken out, resolves numerous bugs
with how we handle header paths. Here are a few that I know of:
- We no longer need to enumerate all GCC versions searched.
- OpenSUSE searched GCC versions in the wrong order.
- There were typos when selecting various patterns, etc.
- We aren't stating quite some many directories now.
- SysRoot didn't always work in a reasonable way.

I'm working on tests for this, but the tests are making me and Lit sad.
The real testing for this type of driver change is to try it out on
various distributions. I'll hit the common ones right away, and start
more thorough testing tomorrow after some sleep.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143874 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
6a21e6583612462d294db8344dd45444f7d84303 06-Nov-2011 Chandler Carruth <chandlerc@gmail.com> Add a missing triple spotted by inspecting and testing of the include
path triples. Also order the 32-bit triples a bit more reasonably.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143873 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
0e29dbb96121386c2e6d03b59eebf2c329a2a578 06-Nov-2011 Chandler Carruth <chandlerc@gmail.com> Lift the GCCVersion type into the header file and start persisting it in
the detected GCC installation. This allows us to expose another aspect
of what we detected: the GCC version. This will be used shortly.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143871 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
fa13459725b7a8c414ddf3742ffb7eab8314388d 06-Nov-2011 Chandler Carruth <chandlerc@gmail.com> Switch some of these interfaces from std::string to StringRef and Twine.
This will facilitate further use and recombinations of them.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143869 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
a463089f6eb37069d406f9fb56e40810edaf523a 06-Nov-2011 Chandler Carruth <chandlerc@gmail.com> Take a better approach to detecting and selecting multiarch include
directories. This way we stop at the first multiarch directory found on
the system. This achieves the real intended result of pruning
non-existent directories.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143866 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
0170fff9f4c667fa85267420b87b2c2ba89aaf31 06-Nov-2011 Chandler Carruth <chandlerc@gmail.com> Revert r143864, as the problem I was actually looking at can be solved
a better way. The more I think about it the more worried I am that this
hammer is simply too large. We should only be reaching out to the
filesystem when doing interesting "detection" things, not gratuitously.

Original commit message:
Start pruning down the set of flags passed to CC1 for header search.
This cleans up the CC1 invocations, and reduces the overhead there.
We're still hammering the filesystem looking for the C++ standard
libraries though.

The only reservation I have about this policy is the case of virtualized
files inside of CC1, but it's not clear what the best way to solve that
is. The Driver consistently queries the actual filesystem to make its
decisions. Changing that would be a very large undertaking. It might be
worthwhile, but it's not an immediate goal.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143865 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
5ffa3eed8b1ca69e1638cffbee2e464276a1ce06 06-Nov-2011 Chandler Carruth <chandlerc@gmail.com> Start pruning down the set of flags passed to CC1 for header search.
This cleans up the CC1 invocations, and reduces the overhead there.
We're still hammering the filesystem looking for the C++ standard
libraries though.

The only reservation I have about this policy is the case of virtualized
files inside of CC1, but it's not clear what the best way to solve that
is. The Driver consistently queries the actual filesystem to make its
decisions. Changing that would be a very large undertaking. It might be
worthwhile, but it's not an immediate goal.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143864 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
cb2e00ff6570144efaf69a03f5d20b9e6fce4f7d 06-Nov-2011 Chandler Carruth <chandlerc@gmail.com> Enhance the GCC version parsing and comparison logic to handle some more
edge cases and have better behavior. Specifically, we should actually
prefer the general '4.6' version string over the '4.6.1' string, as
'4.6.2' should be able to replace it without breaking rpaths or any
other place that these paths have been embedded. Debian-based
distributions are already using a path structure with symlinks to
achieve in-place upgrades for patch versions. Now our parsing reflects
this and we select the shorter paths instead of the longer paths.

A separate issue was that we would not parse a leading patch version
number even in the presence of a suffix. The above change makes this
more problematic as it would cause a suffix being added to make us treat
the entire thing as patch-version-agnostic, which it isn't. This changes
the logic to distinguish between '4.4.x' and 4.4.1-x', and retain that
the latter has *some* patch number information. Currently, we always
bias toward the shorter and more canonical version strings. If it
becomes important we can add more Debian like rules to produce sequences
such as '4.4.1b' > '4.4.1' > '4.4.1-rc3' > '4.4.1-rc2' > '4.4.1-pre5',
but I'm very doubtful this will ever matter or be desirable.

I've made the tests for this logic a bit more interesting, and added
some specific tests for logic that is now different.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143841 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
69cd4aaefe075ede31d81cbf7141d697243fb4f7 05-Nov-2011 Chandler Carruth <chandlerc@gmail.com> Remove a pointless member. I have no idea why I made this not a local
variable to begin with... As I'm planning to add include root
information to this object, this would have caused confusion. It didn't
even *actually* hold the include root by the time we were done with it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143840 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
ca28a899b3fb2a61c65d7a9f7149a6d48f56eb7d 05-Nov-2011 Chandler Carruth <chandlerc@gmail.com> Remove a no-longer needed helper function. Thanks for implementing this
Michael!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143839 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
f13b13e85bedf91bde90a2c902fed99581e70f7a 05-Nov-2011 Chandler Carruth <chandlerc@gmail.com> Move the GCC installation detection helper a member of the Linux
toolchain instead of merely using it in the constructor. This will allow
us to query it when building include paths as well as the file search
paths built in the constructor. I've lifted as little of it as I could
into the header file.

Eventually this will likely sink down into some of the Generic
toolchains and be used on more platforms, but I'm starting on Linux so
I can work out all the APIs needed there, where it is easiest to test
and we have the most pressing need.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143838 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
258883b544bfc220b801b66a5fad416c83cd956f 05-Nov-2011 Chandler Carruth <chandlerc@gmail.com> Remove support for Gentoo subversion-ebuild installed llvm-gcc libstdc++
headers. As llvm-gcc is dead, and I have no idea if this ever really
worked, I think it's time for it to go. More importantly, it makes it
harder to generalize the include search logic. If someone really wants
these to work, they can set the CPLUS_INCLUDE_PATH environment variable.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143836 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
7d7e9f963a4977e36efb90fd9c369f33ced1a95a 05-Nov-2011 Chandler Carruth <chandlerc@gmail.com> Move the Linux header searching from the Frontend to the Driver. This is
the first (and diff-noisiest) step to making Linux header searching
tremendously more principled and less brittle. Note that this step
should have essentially no functional impact. We still search the exact
same set of paths in the exact same order. The only change here is where
the code implementing such a search lives.

This has one obvious negative impact -- we now pass a ludicrous number
of flags to the CC1 layer. That should go away as I re-base this logic
on the logic to detect a GCC installation. I want to do this in two
phases so the bots can tell me if this step alone breaks something, and
so that the diffs of the refactoring make more sense.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143822 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
6fdebeef8f6067808ad5adcfbf3cf03e904d3eda 05-Nov-2011 Benjamin Kramer <benny.kra@googlemail.com> Try to reduce the nastiness that creeps in through Windows.h a bit.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143816 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
103accc00cf1c9a09790ef487a9fb89ec0750fd7 05-Nov-2011 Chandler Carruth <chandlerc@gmail.com> Fix a significant oversight in my move of MSVC includes to the driver:
actually manage the builtin header file includes as well as the system
ones.

This one is actually debatable whether it belongs in the driver or not,
as the builtin includes are really an internal bit of implementation
goop for Clang. However, they must be included at *exactly* the right
point in the sequence of header files, which makes it essentially
impossible to have this be managed by the Frontend and the rest by the
Driver. I have terrible ideas that would "work", but I think they're
worse than putting this in the driver and making the Frontend library
even more ignorant of the environment and system on which it is being
run.

Also fix the fact that we weren't properly respecting the flags which
suppress standard system include directories.

Note that this still leaves all of the Clang tests which run CC1
directly and include builtin header files broken on Windows. I'm working
on a followup patch to address that.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143801 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
ac2bc4d220a6263be96b943e9162f4a11149e26d 05-Nov-2011 Chandler Carruth <chandlerc@gmail.com> Add two flags to the CC1 layer that I was hoping to avoid. We need to
encode the *exact* semantics which the header search paths internally
built by the Frontend layer have had, which is both non-user-provided,
and at times adding the implicit extern "C" bit to the directory entry.

There are lots of CC1 options that are very close, but none do quite
this, and they are all already overloaded for other purposes. In some
senses this makes the command lines more clean as it clearly indicates
which flags are exclusively used to implement internal detection of
"standard" header search paths.

Lots of the implementation of this is really crufty, due to the
surrounding cruft. It doesn't seem worth investing lots of time cleaning
this up as it isn't new, and hopefully *lots* of this code will melt
away as header search inside of the frontend becomes increasingly
trivial.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143798 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
9cef8874ec046db3ba4784d4b2a2e608466f7d0c 05-Nov-2011 Michael J. Spencer <bigcheesegs@gmail.com> Fix MSVC build.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143770 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
ca23419b8214654d185d595956e9ddf24984750a 05-Nov-2011 Chandler Carruth <chandlerc@gmail.com> Begin the migration of header search logic to the driver, starting with
Windows. There are still FIXMEs and lots of problems with this code.
Some of them will be addressed shortly by my follow-up patches, but most
are going to wait until we isolate this code and can fix it properly.
This version should be no worse than what we had before.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143752 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
236e0b6239c588d631b48d17b8e0174508bdc471 31-Oct-2011 Chandler Carruth <chandlerc@gmail.com> Simplify the set of directories we look for on multiarch systems.
I don't have any Debian system with one of these currently, and it seems
unlikely for one to show up suddenly. We can add more patterns here if
they become necessary.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143346 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
deb73f8b9334b7b065e3ce776827e69ccb4f52cd 31-Oct-2011 Chandler Carruth <chandlerc@gmail.com> Fix part of PR11223 and probably a few dups as well. This teaches the
library search logic to "properly" handle multiarch installations. I've
tested this on both Debian unstable and the latest Ubuntu which both use
this setup, and this appears to work largely the same way as GCC does.
It isn't exactly the same, but it is close enough and more principled in
its behavior where it differs. This should resolve any failures to find
'crt1.o' etc on Debian-based Linux distributions. If folks find more
cases where we fail, please file bugs and CC me.

Test cases for all of the debian silliness are waiting both to simplify
the process of merging these down into the 3.0 release, and because
they're so crazy I haven't yet been able to really produce a fake tree
that represents what we need to test for. I'll eventually add them
though.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143344 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
1a1764bd15406f86d53c51b4c7f8a54afee2a541 30-Oct-2011 Bob Wilson <bob.wilson@apple.com> Stop disabling integrated assembler with -static. <rdar://problem/10175391>

The integrated assembler seems to be working pretty well for -static code
now, so remove the hacks to disable it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143304 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
c19981c2711c9b0564bc1a9cbad4b2d0cca608d5 18-Oct-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [driver] Make the driver to link the simulator arclite lib when passing -mios-simulator-version-min.
rdar://10218700

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142372 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
dceb11fdcf3ea657a06d2ec90a8f4b8359ab8727 18-Oct-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Revert r142311, -mios-simulator-version-min does not work correctly.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142322 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
b56e6ad87feb654e4ca265311344f4467a55a810 18-Oct-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Remove the hack where we sniff the __IPHONE_OS_VERSION_MIN_REQUIRED define.

We can use -mios-simulator-version-min now. rdar://10218700

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142311 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
16a63552480b137c6ef1379d2eeb866a12183bd4 16-Oct-2011 Chandler Carruth <chandlerc@gmail.com> Fix a silly bug introduced in r142133.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142134 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
7a09d012f6d52c8a7ba257df85d13149e6aa7cb2 16-Oct-2011 Chandler Carruth <chandlerc@gmail.com> 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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142133 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
f886d6f5ec01e521afc39e967f9ff614c4e1c8e7 14-Oct-2011 Rafael Espindola <rafael.espindola@gmail.com> Fix the CXX_INCLUDE_ROOT case that was out of date with ScanLibDirForGCCTriple.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141980 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
905c45f15a25598620d19160c139c6b785aeea89 14-Oct-2011 Bob Wilson <bob.wilson@apple.com> Use Triple.isOSDarwin() instead of comparing against Triple::Darwin.

There are now separate Triple::MacOSX and Triple::IOS values for the OS
so comparing against Triple::Darwin will fail to match those. Note that
I changed the expected output for the Driver/rewrite-objc.m test, which had
previously not been passing Darwin-specific options with the macosx triple.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141944 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
84cbd4b0a924b3a741bab88c0dd4fd16f3f14b68 13-Oct-2011 Benjamin Kramer <benny.kra@googlemail.com> Add triple for RHEL 5 to the libpath collecting logic.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141887 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
30aa95140a1bc19e3e57795c788fb5b4f5921ad7 10-Oct-2011 Bob Wilson <bob.wilson@apple.com> Partially revert r141374: allow use of libc++ prior to Mac OS X 10.7.

Apple only supports libc++ on OS X 10.7 and later but for the open-source
compiler that restriction doesn't make sense.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141566 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
96e21710e8bf64514ca7d3720cb3b2823eec9164 08-Oct-2011 NAKAMURA Takumi <geek4civic@gmail.com> Fix "Uninitialized" warnings.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141487 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
a789ca9b967abe47b84df83bcf4afb150856a8d9 08-Oct-2011 NAKAMURA Takumi <geek4civic@gmail.com> Whitespace

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141486 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
163b151809beef8f917fd16c546016e83ae3e361 07-Oct-2011 Bob Wilson <bob.wilson@apple.com> Clang driver changes for iOS 5.0 and OS X Lion support.

Check whether the libc++ library is available when using -stdlib=libc++,
and also adjust the check for whether to link with -lgcc_s.1.
Patch by Ted Kremenek and Daniel Dunbar.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141374 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
a59956b473b76af6a9d999ab1780ef74cfed4667 07-Oct-2011 Bob Wilson <bob.wilson@apple.com> Use StringSwitch. Thanks for Chandler for the suggestion.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141344 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
7c627146b3785fed3f27114ec5ab5dd4e0376602 06-Oct-2011 Bob Wilson <bob.wilson@apple.com> Rearrange for readability. No functional change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141309 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
169a6e0bc415770b7cdb90e9777a42f106b8cd24 06-Oct-2011 Bob Wilson <bob.wilson@apple.com> Add a missing check for cortex-a9.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141308 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
1203600d227aefa1600973dd848417d31751a3a2 05-Oct-2011 Chandler Carruth <chandlerc@gmail.com> Use the InstalledDir correctly, and test it correctly as well. =/ Should
have noticed this previously, sorry.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141167 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
dbc2144408c1bbc643a9362225aea8a050b444a7 05-Oct-2011 Chandler Carruth <chandlerc@gmail.com> Teach Clang to cope with GCC installations that have unusual patch
"versions". Currently, these are just dropped on the floor, A concrete
version number will always win out.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141159 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
5058e3a18c5f305d7ff21ba1e9e1439701d40e0b 05-Oct-2011 Chandler Carruth <chandlerc@gmail.com> Implement the feature I was originally driving toward when I started
this saga. Teach the driver to detect a GCC installed along side Clang
using the existing InstalledDir support in the Clang driver. This makes
a lot of Clang's behavior more automatic when it is installed along side
GCC.

Also include the first test cases (more to come, honest) which test both
the install directory behavior, and the version sorting behavior to show
that we're actually searching for the best candidate GCC installation
now.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141145 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
e089088b4ae51a1b7e1803739660c6039505dfee 05-Oct-2011 Chandler Carruth <chandlerc@gmail.com> Hoist the other messy part out of an inner loop and into a helper
function, cleaning up along the way.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141134 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
4c9403c57e4a867c58903546af5826df56a83980 05-Oct-2011 Chandler Carruth <chandlerc@gmail.com> Hoist the first chunk of this into a helper function. No functionality
change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141131 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
74410686903d0effda6eb1ef88bc570bc240ba19 05-Oct-2011 Chandler Carruth <chandlerc@gmail.com> Fix Windows+MinGW which introduces noise into path separators.

There should be a better solution to this; Michael and I are continuing
to discuss exactly what it should be. The one solution I'm very
uncomfortable with is making the FileCheck tests use a regex for each
path separator.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141126 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
6ab8e6231f75500ea4d0c7755032ffc98e71a25f 04-Oct-2011 Chandler Carruth <chandlerc@gmail.com> Now that multiple prefixes are much cheaper to search for GCC
installations, support them when installed directly under the system
root ('/lib/gcc/...' essentially).

With this, Clang can correctly detect and use a cross-compiling GCC
installation within a system root and use it.

Again, test cases will be coming in later commits, as I'm going to write
a few test cases that exercise nearly all of this logic.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141121 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
6d9694cf46af57a28b371bd964b7f6bcafd7d961 04-Oct-2011 Chandler Carruth <chandlerc@gmail.com> Rework the search for a GCC installation still further. This combines
two fundamental changes, as they ended up being interrelated.

The first is to walk from the root down through the filesystem so that
we prune subtrees which do not exist early. This greatly reduces the
filesystem traffic of this routine. We store the "best" GCC version we
encounter, and look at all of the GCC installations available.

Also, we look through GCC versions by scanning the directory rather than
using a hard-coded list of versions. This has several benefits. It makes
it much more efficient to locate a GCC installation even in the presence
of a large number of different options by simply reading the directory
once. It also future-proofs us as new GCC versions are released and
installed. We no longer have a hard coded list of version numbers, and
won't need to manually updated it. We can still filter out known-bad
versions as needed. Currently I've left in filtering for all GCC
installations prior to 4.1.1, as that was the first one supported
previously.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141120 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
c916377785b917e369b8ec9e9af43a4bb6c4699c 04-Oct-2011 Chandler Carruth <chandlerc@gmail.com> Add a comment explaining that I have a better plan for implementing the
GCC installation search that requires fewer filesystem operations.
Planning to implement that next as the current approcah while thorough
(and so far looks correct) does a very unfortunate number of filesystem
operations.

I'm motivated to fix this in no small part because I would like to
support a much larger space of triples and GCC versions, which would
explode the current algorithm.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141073 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
a24b9802d3009c448387174f70bcd9ab44b8a7ea 04-Oct-2011 Chandler Carruth <chandlerc@gmail.com> Invert the loop for detecting installed GCC trees. This make the loop
find the newest GCC available, among other goodness. It makes the entire
system much less prone to error from prefixes and/or system roots
pruning early the set of triples and GCC versions available.

Also, improve some comments and simplify the forms of some of the loops.

This causes the driver to stat directories more often than is strictly
necessary, but the alternatives which I looked at that still
accomplished this goal needed quite a bit more code and were likely not
much faster.

Test cases for this, now that our behavior here is significantly more
principled and predictable, should come tomorrow as I walk back through
VMs looking for edge cases that are missed after this.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141072 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
810e08126fc5d270976e5513baa1810882301bb0 04-Oct-2011 Chandler Carruth <chandlerc@gmail.com> Fuse the two halves of the GCC installation detection. This is
significantly cleaner (IMO) and more principled. We now walk down each
layer of the directory hierarchy searching for the GCC install. This
change does in fact introduce a significant behavior change in theory,
although in practice I don't know of any distro that will be impacted by
it negatively, and Debian may (untested) get slightly better through it.

Specifically, the logic now looks exhaustively for patterns such as:

/usr/lib/<triple>/gcc/<triple>

Previously, this would only be selected if there was *also*
a '/usr/lib/gcc/<triple>' directory, or if '<triple>' were the excat
DefaultHostTriple in the driver.

There is a 4-deep nested loop here, but it doesn't do terribly many
filesystem operations, as we skip at each layer of that layer's
directory doesn't exist.

There remains a significant FIXME in this logic: it would be much better
to first build up a set of candidate components for each of the four
layers with a bottom-up pruning such as this, but then select the final
installation using a top-down algorithm in order to find the newest GCC
installation available, regardless of which particular path leads to it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141071 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
adc4afb4a56e0905753d4ef7a3491f2c0097d80a 04-Oct-2011 Chandler Carruth <chandlerc@gmail.com> 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
/external/clang/lib/Driver/ToolChains.cpp
048e6490704d0a4e095e033786230c584b52d82c 03-Oct-2011 Chandler Carruth <chandlerc@gmail.com> Refactor the detection of a GCC installation into a helper class. This
is designed to allow the detection to record more rich information about
the installation than just a single path.

Mostly, the functionality remains the same. This is primarily
a factoring change. However, the new factoring immediately fixes one
issue where on ubuntu we didn't walk up enough layers to reach the
parent lib path. I'll have a test tree for that once I finish making the
Ubuntu tree work reasonably.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141011 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
38ec546a56a267320f8f6c86141a7b0f7d6493c4 03-Oct-2011 Chandler Carruth <chandlerc@gmail.com> Enable generic multilib support on 32bit hosts. Previously this was only
enabled for debian hosts, which is quite odd. I think all restriction on
when Clang attempts to use a multilib installation should go away. Clang
is fundamentally a cross compiler. It behaves more like GCC when built
as a cross compiler, and so it should just use multilib installs when
they are present on the system. However, there is a very specific
exemption for Exherbo, which I can't test on, so I'm leaving that in
place.

With this, check in a generic test tree for multilib on a 32-bit host.
This stubs out many directories that most distributions don't use but
that uptsream GCC supports. This is intended to be an agnostic test that
the driver behaves properly compared with the GCC driver it aims for
compatibility with.

Also, fix a bug in the driver that this testing exposed (see!) where it
was incorrectly testing the target architecture rather than the host
architecture.

If anyone is having trouble with the tree-structure stubs I'm creating
to test this, let me know and I can revisit the design. I chose this
over (for example) a tar-ball in order to make tests run faster at the
small, hopefully amortized VCS cost.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140999 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
663abc976af682b9426918b3c534d132a2b09a64 03-Oct-2011 Chandler Carruth <chandlerc@gmail.com> Teach the logic for locating an installed GCC about the system root.
This requires fixing a latent bug -- if we used the default host triple
instead of an autodetected triple to locate GCC's installation, we
didn't go back and fix the GCC triple. Correct that with a pile of
hacks. This entire routine needs a major refactoring which I'm saving
for a subsequent commit. Essentially, the detection of the GCC triple
should be hoisted into the same routine as we locate the GCC
installation: the first is intrinsically tied to the latter. Then the
routine will just return the triple and base directory.

Also start to bring the rest of the library search path logic under
test, including locating crtbegin.o. Still need to test the multilib and
other behaviors, but there are also bugs in the way of that.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140995 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
fde8d14ea3061ff82e9dfddb23f17648c103eae6 03-Oct-2011 Chandler Carruth <chandlerc@gmail.com> Add initial support for applying the sysroot to library search paths.
This is still very much a WIP, but sysroot was completely broken before
this so we are moving closer to correctness.

The crux of this is that 'ld' (on Linux, the only place I'm touching
here) doesn't apply the sysroot to any flags given to it. Instead, the
driver must translate all the paths it adds to the link step with the
system root. This is easily observed by building a GCC that supports
sysroot, and checking its driver output.

This patch just fixes the non-multilib library search paths. We should
also use this in many other places, but first things first.

This also allows us to make the Linux 'ld' test independent of the host
system. This in turn will allow me to check in test tree configurations
based on various different distro's configuration. Again, WIP.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140990 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
d2deee17ade564dc9ab672c4ae8d7d4c2002d507 03-Oct-2011 Chandler Carruth <chandlerc@gmail.com> Rework the selection of builtin library search paths on Linux to
precisely match the pattern and logic used by the GCC driver on Linux as
of a recent SVN checkout.

This happens to follow a *much* more principled approach. There is
a strict hierarchy of paths examined, first with multilib-suffixing,
second without such suffixing. Any and all of these directories which
exist will be added to the library search path when using GCC.

There were many places where Clang followed different paths, omitted
critical entries, and worst of all (in terms of challenges to debugging)
got the entries in a subtly wrong order.

If this breaks Clang on a distro you use, please let me know, and I'll
work with you to figure out what is needed to work on that distro. I've
checked the behavior of the latest release of Ubuntu, OpenSUSE, Fedora,
and Gentoo. I'll be testing it on those as well as Debian stable and
unstable and ArchLinux. I may even dig out a Slackware install.

No real regression tests yet, those will follow once I add enough
support for sysroot to simulate various distro layouts in the testsuite.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140981 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
a9402e4b433d79037fabe96fd6ca2a890d47f426 02-Oct-2011 Chandler Carruth <chandlerc@gmail.com> Simplify this through the power of the ternary operator.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140965 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
bc0df7240851f46f07c1a356aa7d1aee26115c31 02-Oct-2011 Chandler Carruth <chandlerc@gmail.com> Consolidate the currently bizarre 32/64 multilib selection logic a bit.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140964 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
eb86b5b039230f5bf7f5bebdc345bf6843410425 01-Oct-2011 Chandler Carruth <chandlerc@gmail.com> Revert r140604: "Let -B work for ld paths on Linux."

This patch may do what it describes, it may not. It's hard to tell as
its completely unclear what this is supposed to do. There are also no
test cases. More importantly, this seems to have broken lots of linker
invocations on multilib Linux systems.

The manual pages for 'ld' on Linux mention translating a '=' at the
beginning of the path into a *configure time* sysroot prefix (this is,
I believe, distinct from the --sysroot flag which 'ld' also can
support). I tested this with a normal binutils 'ld', a binutils 'ld'
with the sysroot flag enabled, and gold with the sysroot flag enabled,
and all of them try to open the path '=/lib/../lib32', No translation
occurs.

I think at the very least inserting an '=' needs to be conditioned on
some indication that it is supported and desired. I'm also curious to
see what toolchain and whan environment cause it to actually make
a difference.

I'm going to add a test case for basic sanity of Linux 'ld' invocations
from Clang in a follow-up commit that would have caught this.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140908 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
a95b9f6dab394fea8378702e1a3d06e3cdfdc9c4 29-Sep-2011 Peter Collingbourne <peter@pcc.me.uk> Driver: use correct search paths for multilib

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140782 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
7ca268423c400ef0109d2b8b29717a83f87e0f3e 28-Sep-2011 Benjamin Kramer <benny.kra@googlemail.com> Driver: Fix two bad typos that were breaking the buildbots.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140682 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
4f8de278b73f438f1911128ae9c8ce27c2b53546 28-Sep-2011 Chad Rosier <mcrosier@apple.com> [driver] If no OSX or iOS target has been specified and we're compiling for
armv7, go ahead as assume we're targeting iOS.
rdar://10147774

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140668 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
5adcec16cb8d9e7bebf310b6c07249dfd852346b 28-Sep-2011 David Chisnall <csdavec@swan.ac.uk> Check for GCC paths that have the target triple in them. This is required for a lot of cross-compile toolchains. Also add some slightly better support for -B.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140645 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
7f9b58b171ea24a5ed14dddb43fe057abcad0ece 27-Sep-2011 David Chisnall <csdavec@swan.ac.uk> Let -B work for ld paths on Linux.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140604 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
b219cfc4d75f0a03630b7c4509ef791b7e97b2c8 23-Sep-2011 David Blaikie <dblaikie@gmail.com> Switch assert(0/false) llvm_unreachable.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140367 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
8aa76ea4472349e081d046f7b21dc1e54014f335 21-Sep-2011 Bob Wilson <bob.wilson@apple.com> For i386 kext fallback to llvm-gcc, search paths for several Darwin versions.

This replaces the hack to read UNAME_RELEASE from the environment when
identifying the OS version on Darwin, and it's more flexible. It's also
horribly ugly, but at least this consolidates the ugliness to touch less of
the code so that it will be easier to rip out later.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140187 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
61ab80a8b35e6fe9363e8ef1b3d27209b0e89349 20-Sep-2011 Chad Rosier <mcrosier@apple.com> [driver] Default to arm mode when using the integrated assembler.
rdar://10125227

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140179 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
733a83b324dc31ac5be3f30f4d05febad0728474 16-Sep-2011 Eli Friedman <eli.friedman@gmail.com> Fix search paths for Ubuntu 11.04 x86. Patch by Stepan Dyatkovskiy.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139941 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
13db5cfc4e5f03eb70efe0d227b53b8280f16161 09-Sep-2011 John McCall <rjmccall@apple.com> Treat the weak export of block runtime symbols as a deployment-target
feature akin to the ARC runtime checks. Removes a terrible hack where
IR gen needed to find the declarations of those symbols in the translation
unit.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139404 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
ab784085b774169cac0850a7e3151be97beb8399 01-Sep-2011 Rafael Espindola <rafael.espindola@gmail.com> Fix PR10744 by adding the toolchain path to the regular program path
and doing a simple search. Before we would manually check for the linker
before the -B options were searched.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138941 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
104087b59d44267ecc70c6ec2c312adb6e94db54 01-Sep-2011 Hans Wennborg <hans@hanshq.net> Add 4.4.6 to GccVersions[] in lib/Driver/ToolChains.cpp.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138940 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
a488497c7c273ba54ce0fc4caf0f4d24adb2be89 31-Aug-2011 Chad Rosier <mcrosier@apple.com> [driver] If no -miphoneos-version-min is specified on the command line *and*
IPHONEOS_DEPLOYMENT_TARGET if undefined, set -miphoneos-version-min based on
isysroot.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138892 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
b1f2f4782097ed5e0a760598cbb853864cf9d7ce 29-Aug-2011 Eli Friedman <eli.friedman@gmail.com> Some minor updates to the Linux search path handling for Slackware. Patch by Will Dietz. PR10692.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138753 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
f59f5dab08d157951369171eb91ed4d614b6bc4f 26-Aug-2011 Chad Rosier <mcrosier@apple.com> Take 2: Actually fix spacing.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138617 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
669cffa41a8789840e7c3a9875aa5ef8c03f43ea 26-Aug-2011 Chad Rosier <mcrosier@apple.com> 80-column.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138614 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
f857186fd1995b34185d063a29b11ad4f948519f 23-Aug-2011 Eric Christopher <echristo@apple.com> Add support for a verifier to the driver. Currently only verifies debug
output on darwin so is hard coded there.

As a note this will need a little bit of refactoring in the class
hierarchy to separate it out for different verifiers based on input type.

Fixes rdar://8256258.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138343 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
cb6239ae97f5ec791f288a284cbec6b8861886b6 17-Aug-2011 Eli Friedman <eli.friedman@gmail.com> Add additional path to Linux toolchain. Patch by Will Dietz. PR10690.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137839 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
faef9fcb41cff7c2cbafb86d3af47c422ddf3010 15-Aug-2011 Bob Wilson <bob.wilson@apple.com> Make -findirect-virtual-calls and -fterminated-vtables aliases of -fapple-kext.
Outside the driver, they were already treated that way, but the driver was not
giving them the same special treatment as -fapple-kext, e.g., falling back to
llvm-gcc for i386/Darwin kexts. Radar 9868422.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137639 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
0ac1ccc0f0bc27aa87438f57466766b0ca5ae0b2 15-Aug-2011 Bob Wilson <bob.wilson@apple.com> Remove duplicate option.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137638 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
57c43a29f5455ba5876f61e726ad622807412785 14-Aug-2011 NAKAMURA Takumi <geek4civic@gmail.com> Fix "Uninitialized" warnings on g++-4.4.

In fact, they are false warnings but it seems g++-4.4 might be unable to know they must be false.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137568 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
a544aeece3e16296bdbbc9ee32053fac9616f85b 14-Aug-2011 Bob Wilson <bob.wilson@apple.com> Reject -mkernel for i386/Darwin C++ code; fall back to llvm-gcc instead.
Since -mkernel implies -fapple-kext, this just extends the current behavior
for -fapple-kext to apply for -mkernel as well. Radar 9933387.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137566 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
98fdfd30c9f640d220aaf4e88c0e9a7dfa337c06 09-Aug-2011 Chad Rosier <mcrosier@apple.com> If no -miphoneos-version-min specified, see if we can set the default based on
-isysroot.
rdar://9837120

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137075 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
5f9e272e632e951b1efe824cd16acb4d96077930 23-Jul-2011 Chris Lattner <sabre@nondot.org> remove unneeded llvm:: namespace qualifiers on some core types now that LLVM.h imports
them into the clang namespace.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135852 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
c57114ab9f8e4c2d680f43a95fe23b13f446b723 20-Jul-2011 Chad Rosier <mcrosier@apple.com> If -ccc-host-triple i386-pc-win32-macho or -ccc-host-triple
x86_64-pc-win32-macho is used in conjunction with -no-integrated-as go ahead and
use the Darwin system assembler.
rdar://9785470


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135604 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
256a76e0b0e0c9e65a3122917d553ef10bc84d29 06-Jul-2011 John McCall <rjmccall@apple.com> Call objc_terminate() instead of abort() when a cleanup throws an
exception in Objective-C; in Objective-C++ we still use std::terminate().
This is only available in very recent runtimes.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134456 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
9f084a3166b684573ba49df28fc5792bc37d92e1 06-Jul-2011 John McCall <rjmccall@apple.com> Change the driver's logic about Objective-C runtimes: abstract out a
structure to hold inferred information, then propagate each invididual
bit down to -cc1. Separate the bits of "supports weak" and "has a native
ARC runtime"; make the latter a CodeGenOption.

The tool chain is still driving this decision, because it's the place that
has the required deployment target information on Darwin, but at least it's
better-factored now.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134453 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
37187cc4554d34fbbb5f168041d6acc4be028fe9 02-Jul-2011 Chandler Carruth <chandlerc@gmail.com> Make the GCC version proliferation worse by N+1 for the sake of
ArchLinux. =/ Fixes PR10246.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134299 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
89bb6146a8eca177b63fbcbc03c68f9012666023 23-Jun-2011 Dylan Noblesmith <nobled@dreamwidth.org> fix autoconf build from r133710

Sorry! This commit worked in CMake, but
CXX_INCLUDE_ROOT is defined in a different
config.h for autoconf.




git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133715 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
3404fe7105ecc3baa58b7ea725773de4112259d6 22-Jun-2011 Eric Christopher <echristo@apple.com> Build and use libcompiler_rt whenever possible.

Patch by Jean-Daniel Dupas!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133624 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
2a45fa7cf67bf88a4edf56d637f6ec7326e44ef8 21-Jun-2011 Daniel Dunbar <daniel@zuster.org> Driver/Darwin: Honor -Xarch_FOO when the arch matches either the toolchain or
the architecture being bound.
- Fixes things like -Xarch_armv7.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133490 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
c37039803a18c7f0f0975a618147d336de3d3d58 16-Jun-2011 NAKAMURA Takumi <geek4civic@gmail.com> Be aware of (x86_64-redhat-linux6E-)g++44 on RHEL5.

AFAIK, RHEL5 (and its clones) provides g++44 as the package "gcc44-c++".
By default, g++-4.1.1 is available, though, its libstdc++ would not be suitable to clang++.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133156 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
f85e193739c953358c865005855253af4f68a497 16-Jun-2011 John McCall <rjmccall@apple.com> Automatic Reference Counting.

Language-design credit goes to a lot of people, but I particularly want
to single out Blaine Garst and Patrick Beard for their contributions.

Compiler implementation credit goes to Argyrios, Doug, Fariborz, and myself,
in no particular order.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133103 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
169dd31c6c552c9234ae97ac2013f9635bdbfa32 08-Jun-2011 Chandler Carruth <chandlerc@gmail.com> Revert "hack in my new variables for GCC"

Very sorry for the accidental commit of WIP code.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132745 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
8afdd56babf69cd8e3b45d0baff0d4fc20d088a0 08-Jun-2011 Chandler Carruth <chandlerc@gmail.com> hack in my new variables for GCC

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132743 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
25a857b8039bc86695614126bfe4f21035d6c76b 05-Jun-2011 Benjamin Kramer <benny.kra@googlemail.com> Toolchain support for Ubuntu Oneiric. Patch by Michael Wild!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132669 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
3393cef18e887723aaa2395d33550ab35551af1d 04-Jun-2011 Roman Divacky <rdivacky@freebsd.org> Make -m32 work on FreeBSD/PowerPC64.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132634 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
c7409a0005f1d1efd7026ee84871afe588740b49 03-Jun-2011 Rafael Espindola <rafael.espindola@gmail.com> We were looking at /usr/lib only if the distro had multilib. This is bogus:
we look in /usr/lib to find crt1.o, and that depends only on where libc
is installed.

This fixes the case of using a different gcc installation in a distro
without multilib.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132551 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
5a640efa55631cc38fe36bdd0ab8283b28322503 03-Jun-2011 Rafael Espindola <rafael.espindola@gmail.com> Add support for centos.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132550 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
9af535a0116c5f7159830ef98603d8142b3217a6 03-Jun-2011 Eric Christopher <echristo@apple.com> 80-col cleanup.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132543 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
304ed3f81ba96f10a431318e2d30f8fdb8399e60 03-Jun-2011 NAKAMURA Takumi <geek4civic@gmail.com> Untabify and fix whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132531 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
14ea13cb5af3e9925e141458ab1388daa2ede86d 03-Jun-2011 Rafael Espindola <rafael.espindola@gmail.com> We already have support for using c++ headers from a custom location.
Before this patch we would still link with the system libstdc++. It worked
fine most of the time, but would break if the used headers were a lot newer
than the system libraries.

This patch changes the driver to use the libraries corresponding to the
headers the user selected.

This fixes, for example, using 4.5 headers in a system with gcc 4.1.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132497 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
0b200f66b45cb34d0af71a5ce18f4a3c2cffcce1 02-Jun-2011 Eli Friedman <eli.friedman@gmail.com> Add Debian wheezy/sid to ToolChains.cpp. Patch by Michael Wild. PR10064.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132489 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
f0b60ecc824af1e99e4288a8dcc11b22e2a6ea5e 24-May-2011 Chandler Carruth <chandlerc@gmail.com> Fix a bug in the most recent openSUSE support patch.

This patch also by Ismail Donmez.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131958 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
64a891770158a944fd9eca3c8e11cd599211aa81 22-May-2011 Chris Lattner <sabre@nondot.org> add opensuse toolchain support, patch by Ismail Donmez!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131857 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
d753b56d777a6ec1e62373dde8c398ae070a556e 22-May-2011 Chris Lattner <sabre@nondot.org> Add Redhat Enterprise Linux to the Linux toolchain, PR9769,
patch by Bryce Lelbach


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131840 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
de5c048fedb81f9b91c80cee1e5f4afd551dadd6 19-May-2011 David Chisnall <csdavec@swan.ac.uk> - Fixes openSUSE detection for 11.4 and upcoming 12.1
- Adds gcc 4.6 to gcc list so that linking will work on openSUSE 12.1

Patch by İsmail Dönmez!



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131637 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
199e09a93813516a5e8f9ce2c3cd4c18d60961db 18-May-2011 Eric Christopher <echristo@apple.com> Add some support for RHEL5 systems.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131505 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
182564cd14a2105fff05fd52f5940eff96161d57 16-May-2011 Joerg Sonnenberger <joerg@bec.de> Make the triple an explicit argument of FindTargetProgramPath.
Preserve the original triple in the NetBSD toolchain when using -m32 or
-m64 and the resulting effective target is different from the triple it
started with. This allows -m32 to use the same assembler/linking in
cross-compiling mode and avoids confusion about passing down target
specific flags in that case like --32.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131404 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
87e945f0f1fb5778c4c6b9e61356c7f1571b9cb4 30-Apr-2011 Daniel Dunbar <daniel@zuster.org> Driver/Darwin: Don't link -lgcc_s.1 when compiling as iOS for the simulator,
that library has never been in the SDK. Fortunately, it shouldn't be necessary,
since that library was also removed in 10.6.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130595 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
3fd823b0625eba87153fe592a0fd12e088db3b36 30-Apr-2011 Daniel Dunbar <daniel@zuster.org> Driver/Darwin: Reject invalid arch combinations with
-mios-simulator-version-min.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130593 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
5f5c37b1234e6ebb6c17e084bc4e2cce92e31585 30-Apr-2011 Daniel Dunbar <daniel@zuster.org> Driver/Darwin: Change Darwin toolchain to explicitly track is-ios-sim bit, and
update -mios-simulator-version-min to set it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130592 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
9d609f2b0dd604879f8b284ded1f14ba300e8070 30-Apr-2011 Daniel Dunbar <daniel@zuster.org> Driver/Darwin: Sketch initial support for a -mios-simulator-version-min= flag
and associated deployment target environment variable.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130591 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
80585d8c96c715f187ccfd180d93a084a86b4020 25-Apr-2011 Nico Weber <nicolasweber@gmx.de> Let clang detect gcc triple on Ubuntu Natty. Patch by Thomas Jablin.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130119 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
8a3a7f36aea62a91d12a4aafd16cc32081ad11cf 21-Apr-2011 Daniel Dunbar <daniel@zuster.org> Driver/Darwin: Allow OS X deployment targets like 10.4.11, even though they
can't be represented in the environment define.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129939 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
0e02f6ef48a098cc27a250e644415038c2fa52a5 21-Apr-2011 Daniel Dunbar <daniel@zuster.org> Driver: Tweak -Xarch diags a bit more, we can't actually differentiate between
unknown and "required more arguments", but only the latter should be feasible in
practice.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129919 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
7e9293b8be1716149f2150f96e76876719f14e45 21-Apr-2011 Daniel Dunbar <daniel@zuster.org> Driver: Improve -Xarch argument diagnostics a bit.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129918 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
659d23a4e645c1d7a700da05a1b1aabf9fd4c6f3 20-Apr-2011 Daniel Dunbar <daniel@zuster.org> Driver/Darwin: Switch to using -macosx for OS name in triples.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129834 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
729f38ebc6b5a747fe7565a5238e70c84ccfee84 19-Apr-2011 Daniel Dunbar <daniel@zuster.org> Driver/Darwin: Switch to using new style triples.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129824 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
3cceec5e05d974f3993bd0a745325f76fb8e4efc 19-Apr-2011 Daniel Dunbar <daniel@zuster.org> Driver/Darwin: Change to use generic iOS runtime library, which we now always need.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129734 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
d130c7df5db47e5467fd7f7888fecd403fed796d 18-Apr-2011 Ted Kremenek <kremenek@apple.com> Add ToolChain path support for linker on Slackware.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129704 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
fc8f0e14ad142ed811e90fbd9a30e419e301c717 15-Apr-2011 Chris Lattner <sabre@nondot.org> fix a bunch of comment typos found by codespell. Patch by
Luis Felipe Strano Moraes!



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129559 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
8f1cc075c36212797ef52dac0e2fe35417a6bb6b 06-Apr-2011 Eric Christopher <echristo@apple.com> Add support for Fedora16, gcc 4.6.0 and Fedora Rawhide.

Patch by Bobby Powers


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129014 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
43ac2978291bf1471e2c916a88c7f1c1e170dc19 06-Apr-2011 Ted Kremenek <kremenek@apple.com> Add ToolChain support to get Clang to recognize Ubuntu/ppc and Gentoo/ppc64.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128944 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
1ec0ade3bb7d1468c3dfa6ba7ce7a48b2b95d9d3 21-Mar-2011 Bob Wilson <bob.wilson@apple.com> Add clang support for cortex-m0 cpus. Patch by James Orr.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128018 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
05e5930166333e382522b942f00d08abc6c0a28e 21-Mar-2011 Joerg Sonnenberger <joerg@bec.de> Memorize presence/absence of -nostdlib in Driver.
Drop program paths on NetBSD (unused). Only include lib dir, if
-nostdlib is absent. Use = to allow --sysroot to work.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127995 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
5ce872fdcdf868c60e91f4669b2c2925c5c2e6cc 18-Mar-2011 Daniel Dunbar <daniel@zuster.org> Driver/Darwin: Transparently fallback when compiling i386 -fapple-kext code, we
don't support the ABI yet.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127903 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
ac0659ae4124156915eddf70e78065df224d34c8 18-Mar-2011 Daniel Dunbar <daniel@zuster.org> Driver: Give SelectTool access to the action inputs.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127902 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
4702309fb6718bcb52751722cf6ed28742707e58 18-Mar-2011 Daniel Dunbar <daniel@zuster.org> Driver/Darwin: Change fallback to use llvm-gcc search paths instead of GCC.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127897 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
79be940271c69082344ea4e3d5a867e925a46d96 18-Mar-2011 Daniel Dunbar <daniel@zuster.org> Driver/Darwin: Kill the DarwinGCC toolchain.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127896 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
814638ed5a7bb7fc9df96d9be2c9a5d2a0d96b02 14-Mar-2011 Douglas Gregor <dgregor@apple.com> Support Ubuntu hardy and intrepid, from Thomas Gamper!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127583 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
f0594d8b64cf32c55dde7a49ba849e864446c92b 06-Mar-2011 Douglas Gregor <dgregor@apple.com> Fix driver for thumb-capable ARM hosts, from Mikko Lehtonen!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127128 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
86643b88a11582cfff2091a4815950d166269428 01-Mar-2011 Benjamin Kramer <benny.kra@googlemail.com> Since getDriver().getInstalledDir() returns a const char *, don't try to
compare it with getDriver().Dir.c_str(), since that is a pointer
comparison, not a "are these strings equal" comparison.

Instead, just compare with getDriver().Dir directly, so both sides will
get promoted to std::string, and the regular std::string comparison
operator applies.

Patch by Dimitry Andric!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126791 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
bbe8e3eff56ac1d79f3668d706536e3cebe28c18 01-Mar-2011 Daniel Dunbar <daniel@zuster.org> Driver/Darwin: Be bug compatible with GCC and ignore -pg on ARM.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126767 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
20f1462f817ac1374f42c6d62853f137feff147b 01-Mar-2011 Roman Divacky <rdivacky@freebsd.org> On FreeBSD, we don't want 'getDriver().Dir + "/../lib"' added to the
ToolChain's FilePaths. If clang is installed as a port in /usr/local,
it is *not* supposed to use /usr/local/lib by default, for example.

Additionally, there are no clang-related executables in either
/usr/libexec, or getDriver().Dir + "/../libexec", anymore, so remove
that from the ToolChain's ProgramPaths.

Patch by Dimitry Andric!



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126760 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
34f9e296418229074e1cf2ecdf5049cb6acfcebe 25-Feb-2011 Daniel Dunbar <daniel@zuster.org> Driver: Attmpt to fix some possibly UB that MSVC doesn't care for.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126513 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
3fd345a59db34de5bc8e29a64ebd9f68a1e9eb44 25-Feb-2011 Chandler Carruth <chandlerc@gmail.com> Add support for ArchLinux, patch by Kevin Winchester.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126476 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
6b7367e53c47ae0528dbc658bbac603d24f87f94 22-Feb-2011 Chris Lattner <sabre@nondot.org> improve support for SUSE Linux Enterprise Server 11 SP1 (x86_64).
Patch by Csaba Raduly!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126245 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
8ac38d7b5d88d12f454a7cda1275bf429813151d 19-Feb-2011 Daniel Dunbar <daniel@zuster.org> Driver/Darwin: Support -Wl, with -Xarch_. This doesn't work naturally because of
the special way we model "linker input" arguments.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126023 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
8e50a96b387dca7525caa8a6add31420dd82a2cd 02-Feb-2011 Benjamin Kramer <benny.kra@googlemail.com> Add NetBSD target support. Patch by Joerg Sonnenberger.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124736 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
e10f90095354ac819fa1fa2646fd850fac862532 02-Feb-2011 Nick Lewycky <nicholas@mxc.ca> Add support for x86-64 Mandriva 2010.2. Reported by 'rindolf' on IRC!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124699 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
48aef3625a0a80d044b40f872355990134ee7598 13-Jan-2011 Chris Lattner <sabre@nondot.org> optimize out a temporary sys::Path


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123359 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
2dea7c7c23b37508976b90b871390450b9c8bc3b 13-Jan-2011 Michael J. Spencer <bigcheesegs@gmail.com> replace all uses of PathV1::IsSymlink with PathV2::is_symlink.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123344 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
32bef4edba854303800b3b01cb49a282e5da4f69 10-Jan-2011 Michael J. Spencer <bigcheesegs@gmail.com> Replace all uses of PathV1::exists with PathV2::fs::exists.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123150 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
3fdcc6fb12d7cf38d2a3111736f80f0dd55447b4 31-Dec-2010 Nick Lewycky <nicholas@mxc.ca> Remove stray emacs mode markers in all these files that was causing emacs to
open them in fundamental-mode instead of c++-mode.
Also twiddle whitespace for consistency in ToolChains.cpp.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122646 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
4eeebc464e1f968d9968a4786c82558f18ac2ed8 16-Dec-2010 Michael J. Spencer <bigcheesegs@gmail.com> MemoryBuffer API update.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121956 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
3a321e23f66128dbb986343927456ff6702af617 09-Dec-2010 Michael J. Spencer <bigcheesegs@gmail.com> Use error_code instead of std::string* for MemoryBuffer.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121378 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
03013fa9a0bf1ef4b907f5fec006c8f4000fdd21 29-Nov-2010 Michael J. Spencer <bigcheesegs@gmail.com> Merge System into Support.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120297 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
1d636c2a56910474605d59be0c20e6c2239c1c0e 28-Nov-2010 Rafael Espindola <rafael.espindola@gmail.com> Add missing else.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120231 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
e4539ef4633fa5c0867e247b5bc88e0f753a2336 19-Nov-2010 Rafael Espindola <rafael.espindola@gmail.com> Check for gcc 4.3.4.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119839 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
2a69ddd2d4a48620bbd001b1fa777d73511f4150 19-Nov-2010 Nuno Lopes <nunoplopes@sapo.pt> add support for the i686-pc-linux-gnu triple (used by Gentoo x86)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119807 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
53dd00bae3b31aa637666715c6dee0eb01723d92 17-Nov-2010 Rafael Espindola <rafael.espindola@gmail.com> Add support for distros that like x86_64-unknown-linux-gnu.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119425 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
5ede807c1194c3a44c0adee83eca24efd626e5bb 15-Nov-2010 Zhongxing Xu <xuzhongxing@gmail.com> Add driver support for Ubuntu 9.10.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119137 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
0a84aee0a3ada448fb4ae5fd4964791d42a501b3 11-Nov-2010 Rafael Espindola <rafael.espindola@gmail.com> Add support for Exherbo. Patch by Elias Pipping.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118769 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
021aaa4f6b86bc9e2801f3475d1ec3dd7bc008c7 10-Nov-2010 Rafael Espindola <rafael.espindola@gmail.com> Add support for Ubuntu Jaunty.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118673 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
fe3a7ea7f2132ec5cd0510cc21d2677614a6ab3a 08-Nov-2010 Roman Divacky <rdivacky@freebsd.org> Add a forgotten break. Found by Rafael Espindola!



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118433 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
67dece7e8b38138dd07e3d461d675dd8c8b4e025 08-Nov-2010 Roman Divacky <rdivacky@freebsd.org> Use integrated-as for processing .s files on FreeBSD. Copied
from Linux/OpenBSD code.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118419 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
94c8022573b2f7da5124558a8d0597b0e8fbb381 08-Nov-2010 Rafael Espindola <rafael.espindola@gmail.com> Pass "-z relro" as two arguments. This works with both gnu ld and gold.
Patch by Frits van Bommel.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118406 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
dda5b92c770b024a2b551bb22331d079821f67a0 08-Nov-2010 Rafael Espindola <rafael.espindola@gmail.com> Use the integrated assembler when procession .s files on OpenBSD and Linux.
Original patch for OpenBSD by Vladimir Kirillov.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118386 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
c1da981bba867681004004b2d54ec2fdf3c08913 07-Nov-2010 Rafael Espindola <rafael.espindola@gmail.com> Use ld directly on linux. Changes from the previous try:
*) Try to detect as much as possible from the system itself, not the distro.
This should make it easier to port to a new distro and more likely to
work on a unknown one.
*) The distro enum now doesn't include the arch. Just use the existing
host detection support in LLVM.
*) Correctly handle --sysroot.

A small regression is that now clang will pass bitcode file to the linker.
This is necessary for the gold plugin support to work.

It might be better to detect this at configure/cmake time, but doing it in
c++ first is a lot easier.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118382 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
138e66ffa8008b95121580f5459af45487df9803 03-Nov-2010 Rafael Espindola <rafael.espindola@gmail.com> Revert while I debug test failures :-(

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118150 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
29a88f441fb9d82cfa898774cf6711e54bcba2ff 03-Nov-2010 Rafael Espindola <rafael.espindola@gmail.com> Switch clang to run ld directly on linux. I tested this on all the linux
distros listed by running

gcc main.o -o main
g++ main.o -o main
gcc main.o -o main -static
g++ main.o -o main -static
gcc f.o -o f.so -shared
g++ f.o -o f.so -shared

and comparing the ld line with the one created by clang. I also added
-m32/m64 in distros that support it.

While I tested many distros, there will always be more. If you are hit by this
it should be somewhat easy to add your distro. If you are in a hurry, do
revert this, but please inform how to detect you distro and the ld command
lines produced by the above gcc invocations. Most distros have some patches
on gcc :-(

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118149 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
e43cfa1fdbf5b404a76e31f31b1505c7852a1967 29-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> Switch to using the integrated assembler by default on x86 and x86-64 ELF
systems.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117697 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
362ed7052071245c6c1b15d59c1973f8c80b0b2a 12-Oct-2010 Daniel Dunbar <daniel@zuster.org> Driver/Darwin: Remove a useless warning about missing runtime libraries. These
are almost never needed, so the warning isn't very useful.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116263 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
885b1dbc6e48db318f7a6b72c1592e8fb46b081a 22-Sep-2010 Daniel Dunbar <daniel@zuster.org> Driver/Darwin: Add a runtime library just for ___eprintf -- when targeting i386
some projects still depend on ___eprintf being available.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114509 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
7433fedce98a58341d0f30c2e12e8d53f3bba575 17-Sep-2010 Shantonu Sen <ssen@apple.com> Driver: implement driver automagic support for -lcc_kext

Rewrite linker arguments to use libclang_rt.cc_kext.a
instead of gcc-specific libcc_kext.a

Resolves Radar 7808495


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114193 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
0e50ee4b94929ff172099bbd0c1029721ac79bc2 17-Sep-2010 Daniel Dunbar <daniel@zuster.org> Driver/DarwinClang: Add GCC libexec paths so we can find the cc1 binaries if we
ever use fallback.
- Not necessary for clang as a compiler, but useful for testing purposes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114172 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
132e35d2f87895d20e7ea146c8c00404b80221a1 17-Sep-2010 Daniel Dunbar <daniel@zuster.org> Driver: Fix spelling of AddCXXStdlibLibArgs, which I copy-n-pasto'd.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114147 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
efe91ea6bb6f45aaf663a43a1960998bc1eb9378 17-Sep-2010 Daniel Dunbar <daniel@zuster.org> Driver/DarwinClang: The new toolchain definition is going to drop the -L inside
the GCC dir. Unfortunately, this breaks -lstdc++ on SnowLeopard, etc. because
the libstdc++ dylib was hiding there. Workaround this by providing the path to
the right -lstdc++.6 (the only version used in recent memory) if we can't see an
obvious -lstdc++, but can find = -lstdc++.6.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114146 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
b993f5d93b994b9b0aac6aebae669621744bbed7 17-Sep-2010 Daniel Dunbar <daniel@zuster.org> Driver: Add a toolchain hook for whether the system has native LLVM support.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114137 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
34916dbb1018dc7a7f42a339923f5b73762e9872 03-Sep-2010 Douglas Gregor <dgregor@apple.com> Add missing #include

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112974 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
3f2cc6f42bce4c5c31fa6026eb54bf73dd60fade 03-Sep-2010 Chris Lattner <sabre@nondot.org> fix a hard coded version number, PR8031. Patch by 'nobled'.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112970 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
3a0e3926b8824076cf5c2f9c96883e72fd84c9cb 26-Aug-2010 Daniel Dunbar <daniel@zuster.org> Driver/Darwin: Pass the right arch specific dir for ARM, when linking.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112124 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
00577ada44c889fbe311d61c51a8da89e65c7c9a 24-Aug-2010 Daniel Dunbar <daniel@zuster.org> Driver: Move Clang "triple" computation routines to method on the
ToolChain. This fixes a potenial bad cast when running Clang on PPC code, since
the tool chain in effect is not a subclass of the Darwin one, but we were
treating it like it was.
- This introduces some gross code duplication, but the right fix for it is to
just move the Driver to start depending on the targets in libBasic, so I am
not planning on fixing it immediately.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111856 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
eab3bc4f0b51b6558c85eb6a8079f327573790ba 23-Aug-2010 Daniel Dunbar <daniel@zuster.org> Driver/Darwin: When using the simplified Clang toolchain, make sure to also pass
the arch specific gcc lib path.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111839 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
e97673f10fbb557be2d95f6ca0fcdb6f6dc82b3b 22-Aug-2010 Chandler Carruth <chandlerc@gmail.com> Add two new enumerations to the unsupported list for Windows so that all cases
are handled.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111773 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
ff58e3610f4e12094def69eb2d6dcb4330378d8f 21-Aug-2010 Michael J. Spencer <bigcheesegs@gmail.com> Visual Studio tools used on win32 hosts when targeting win32.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111748 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
ba30bbe4e36a30a274da809a11a42f9cdc168e92 10-Aug-2010 Rafael Espindola <rafael.espindola@gmail.com> Run the assembler instead of gcc on Linux.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110635 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
25b58eb7998ed947bc1c07e70de0b5d8f6aff857 02-Aug-2010 Daniel Dunbar <daniel@zuster.org> Driver/Darwin: Change where Darwin computes the host version, to normalize tool
chain construction.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110028 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
c2bda62f0ccbfc22651d9d986282c497afc9be1d 02-Aug-2010 Daniel Dunbar <daniel@zuster.org> Driver/Darwin: Inline some constants.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110026 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
214afe96b4210ca36d99621dd930225e6bf5b9b3 02-Aug-2010 Daniel Dunbar <daniel@zuster.org> Driver/FreeBSD: Change how FreeBSD derives the Lib32 variable, to normalize tool
chain construction.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110025 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
4180011fb8cef06adec04d30486b1bf3b99aa8b8 02-Aug-2010 Daniel Dunbar <daniel@zuster.org> Driver: Move HostInfo::lookupTypeForExtension to ToolChain::LookupTypeForExtension.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110024 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
edf29b00bc1641034b38be92146e15f0625a45d2 02-Aug-2010 Daniel Dunbar <daniel@zuster.org> Driver: Keep track of a separate "install dir", which is the path where clang
was invoked from (which may not be where the executable itself is).
- This allows having e.g., /Developer/usr/bin/clang be a symlink to some other
location, while still making sure the Driver finds 'as', 'ld', etc. relative
to itself.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109989 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
60baf0f6d54376805168d49fa68628f801f95ef9 19-Jul-2010 Daniel Dunbar <daniel@zuster.org> Driver/Darwin: Add deployment target after doing argument translation, so that
-mmacosx-version-min works inside a -Xarch_ flag.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108712 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
c0e665eb705762f95cd4f722ad7ecbdcde3f4527 19-Jul-2010 Daniel Dunbar <daniel@zuster.org> Driver: Factor out Darwin::AddDeploymentTarget.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108711 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
2bb38d0d93e56617f93091a92b2e6396c0cd0dcd 15-Jul-2010 Daniel Dunbar <daniel@zuster.org> Driver/Darwin: Resolve deployment target defaulting to be more predictable;
assume we are targetting OS X unless an explicit option is given.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108426 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
38e317d6dce161b249508686cc67eb7176958762 07-Jul-2010 Chris Lattner <sabre@nondot.org> add driver support for minix, patch by Kees van Reeuwijk
from PR7583


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107788 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
424b6613a9e5631d61c4c8ed2f1601457b64bfd4 01-Jul-2010 Daniel Dunbar <daniel@zuster.org> Driver/Darwin: Add one -L for the DarwinClang toolchain to point into the gcc
library directory, as we still rely on a few libraries that are hiding there (in
particular libstdc++.dylib).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107353 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
7fb2c25ab0b6fa1543bce410dbdb2ee5d2513a86 15-Jun-2010 Daniel Dunbar <daniel@zuster.org> Driver/FreeBSD: Add libexec to program search paths, to workaround some build
problem; patch by Ed Schouten.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105996 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
0e10031ba5d0f9b3e5bc5570f39382d288779ab8 14-Jun-2010 Daniel Dunbar <daniel@zuster.org> Driver: Eliminate uses of Arg::getIndex.

Also, fix a memory leak.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105963 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
9d0863b22faef1678eb191bbab7268809be60a96 14-Jun-2010 Daniel Dunbar <daniel@zuster.org> Driver: Add DerivedArgList::AddFOOArg helper functions, and switch to using them.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105957 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
279c1dbebf37cd128f3c73c70741a6b8c35ad025 12-Jun-2010 Daniel Dunbar <daniel@zuster.org> Driver: Add an explicit argument translation phase to the driver itself. We are going to need this to handle things like -Xassembler, -Xpreprocessor, and -Xlinker which we might have to introspect.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105842 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
6e0f25483b1a801cd1155ea89c2b725feab16332 04-Jun-2010 Daniel Dunbar <daniel@zuster.org> Driver: Add an explicit dsymutil action.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105474 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
0f602ded589d381c6c3862eae87620d19fd10f47 20-May-2010 Daniel Dunbar <daniel@zuster.org> Driver: Switch to using the integrated assembler for standalone assembly jobs
(or -save-temps), when the integrated assembler is enabled.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104282 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
e3c153a88a21e620446955705a7fc8215b4cc2f2 10-Apr-2010 Daniel Dunbar <daniel@zuster.org> Driver: Only add extra -L paths on darwin if they exist. Unfortunately, this
means it isn't really possible to write the test case for this code, but this is
the kind of thing that really requires testing against the installed compiler
anyway.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100935 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
43a9b3263cb0bcb050cc75c15b3e6a8951e6b97a 10-Apr-2010 Daniel Dunbar <daniel@zuster.org> Driver: Ignore -fobjc-gc and -fobjc-gc-only for platforms which don't support them.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100930 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
8bc9c550128c0662a04234dc262628c54c76b1ea 10-Apr-2010 Daniel Dunbar <daniel@zuster.org> Driver/Darwin/x86: When linking, incorporate -L paths based on the path where
Clang is installed. This is designed to match gcc, and is important when
installed in a non-standard location.
- This is gross, but no worse than ever. It will die when we finally move to
the compiler-rt based toolchain, any day now.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100915 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
84d1e6e443b90275539a4e5b2dd94ae63c5ff19a 20-Mar-2010 Daniel Dunbar <daniel@zuster.org> Driver: Fix thinkos that prevented Clang from picking the right deployment
target when both {MACOSX,IPHONEOS}_DEPLOYMENT_TARGET were set.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99055 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
3a47c4e0a3e8d13ee4fb06cc3a98f9cfa9982400 04-Mar-2010 Chris Lattner <sabre@nondot.org> add TCE target support, patch by Pekka J!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97746 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
b2987d159a88ab0ee2e40c884eb4d77b42ab89b6 10-Feb-2010 Daniel Dunbar <daniel@zuster.org> Switch to using -fsjlj-exceptions instead of hard-coding it. Notably, this fixes
calls to the UnwindResumeOrRethrow function for C++/Obj-C exception handling,
for Darwin ARM.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95787 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
39053672d459bff1d3ab1f72a7901f24e3fa542e 02-Feb-2010 Daniel Dunbar <daniel@zuster.org> Driver/Darwin: Don't error/warn on conflicting deployment targets. Apparently
this is still a popular thing to do.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95093 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
1a3c1d9dcfdb199353b68b071b6319724b8e3c31 29-Jan-2010 Daniel Dunbar <daniel@zuster.org> Driver/Darwin: Fix a crash when diagnosing conflicting deployment targets.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94812 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
5435fc9739e9ac4baede460cf5e7489886948af5 27-Jan-2010 Daniel Dunbar <daniel@zuster.org> Driver/Darwin: Eliminate invalid uses of DarwinVersion -- this fixes a number of
defaults when targetting iPhoneOS (blocks, non-fragile ABI, stack protector).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94642 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
ce3fdf233353b10f20d74dceda3d77a82285de17 27-Jan-2010 Daniel Dunbar <daniel@zuster.org> Driver/Darwin: Simplify target version checks.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94641 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
cc8e1894109b7c02258b7f4be5624d3d8d1523ce 27-Jan-2010 Daniel Dunbar <daniel@zuster.org> Driver/Darwin: Eliminate confusing IsIPhoneOS parameter -- this was actually
just indicating whether the default target should be iPhoneOS.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94638 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
251ca6c9fb2bb398d9bf9fe7399c27bed7074b5c 27-Jan-2010 Daniel Dunbar <daniel@zuster.org> Driver/Darwin: Switch to using isTargetIPhoneOS where appropriate.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94637 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
2603137cb91e1d143b36fb71a72189884fbde5b5 27-Jan-2010 Daniel Dunbar <daniel@zuster.org> Driver/Darwin: Track target platform more explicitly in tool chain, eventually
this should just be part of the tool chain itself once we have eliminated
argument translation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94635 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
816bc31ed45002de2547d6679b44f31eb85ec491 26-Jan-2010 Daniel Dunbar <daniel@zuster.org> Driver/Darwin: Honor IPHONEOS_DEPLOYMENT_TARGET.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94488 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
eec99100f0caa1d71bcc911ce38b9a58a8a43fdc 22-Jan-2010 Daniel Dunbar <daniel@zuster.org> Driver/Darwin: Update tool chain to use static clang_rt libraries provided by
compiler-rt. This tool chain now works on x86 and ARM, but isn't the x86 default
yet.

This drastically cleans up the linker invocation, old invocation:
--
"/Developer/usr/bin/../libexec/gcc/i686-apple-darwin10/4.2.1/ld" "-dynamic" "-arch" "x86_64" "-macosx_version_min" "10.6.0" "-weak_reference_mismatches" "non-weak" "-o" "a.out" "-lcrt1.10.6.o" "-L/usr/lib/gcc/i686-apple-darwin10/4.2.1/x86_64" "-L/usr/lib/gcc/i686-apple-darwin10/4.2.1/x86_64" "-L/usr/lib/i686-apple-darwin10/4.2.1" "-L/usr/lib/gcc/i686-apple-darwin10/4.2.1" "-L/usr/lib/gcc/i686-apple-darwin10/4.2.1" "-L/usr/lib/gcc/i686-apple-darwin10/4.2.1/../../../i686-apple-darwin10/4.2.1" "-L/usr/lib/gcc/i686-apple-darwin10/4.2.1/../../.." "t.o" "-lSystem" "-lgcc"
--

New invocation:
--
# For 10.6:
"/usr/bin/ld" "-dynamic" "-arch" "x86_64" "-macosx_version_min" "10.6.0" "-o" "a.out" "-lcrt1.10.6.o" "t.o" "-lSystem"
# For 10.4:
"/usr/bin/ld" "-dynamic" "-arch" "x86_64" "-macosx_version_min" "10.4" "-o" "a.out" "-lcrt1.o" "t.o" "-lSystem" "-lgcc_s.10.4" "/Volumes/Data/ddunbar/llvm.obj.64/Debug/lib/clang/1.1/lib/darwin/libclang_rt.10.4.a"
--

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94150 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
eeff406730f50afd973f005a8d501a19af4785e5 22-Jan-2010 Daniel Dunbar <daniel@zuster.org> Driver/Darwin/ld: Factor out getDarwinArchName, for getting the "Darwin" arch
name being used in an driver invocation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94139 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
6cfb3ef451515221cb5a8cf1f952e0230f9eed5b 18-Jan-2010 Daniel Dunbar <daniel@zuster.org> Remove ../libexec from clang program search path, clang-cc is dead.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93749 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
8a0d94d2ef8cbc93f9d6ecae2816c7a8db102f53 10-Jan-2010 Daniel Dunbar <daniel@zuster.org> Fix a FIXME.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93087 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
c31176d5ebbcd407aa512bbd5f717e35da629e7d 08-Jan-2010 Dan Gohman <gohman@apple.com> Use -fno-math-errno by default, and remove the IsMathErrnoDefault
targethook, which is no longer being used. This fixes PR5971.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92987 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
ee788e70fcd0adf76103b17c78ac658d4ea30c9b 21-Dec-2009 Daniel Dunbar <daniel@zuster.org> Add ToolChain::getDriver() and use it instead of going through the HostInfo
object.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91830 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
f2d8b9f967a1ab53ee9fdbcc3ac0a4ee0a83a26e 18-Dec-2009 Daniel Dunbar <daniel@zuster.org> Add -dwarf-debug-flags, which provides a way to embed the cc1 level options used
to compile a translation unit into the debug info for that file.
- Used by parts of Darwin build process to check compiler flags, etc.
- <rdar://problem/7256886> clang does not emit AT_APPLE_flags

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91661 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
9f61aa9e280adea9fbf3365f0e4f6ed568c9885a 12-Dec-2009 Jeffrey Yasskin <jyasskin@google.com> Un-namespace-qualify llvm_unreachable. It's a macro, so the qualification gave
no extra safety anyway.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91207 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
265e9ef9f3ef30a97790e6e7bbc3c17d97981ca7 19-Nov-2009 Daniel Dunbar <daniel@zuster.org> Driver: ArgList doesn't depend on Options.h anymore.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89313 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
9e1f98260a1842df4bb8e6de0b592a1622dcfdc0 19-Nov-2009 Daniel Dunbar <daniel@zuster.org> Driver: Introduce OptSpecifier class for protecting access to an option id.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89310 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
e4bdae78c69d2a09ee96619cc5ccf81441674412 19-Nov-2009 Daniel Dunbar <daniel@zuster.org> Driver: Switch to using explicit {getLast,has}ArgNoClaim functions instead of taking a Claim argument.
- Most driver code always claims, and bool arguments don't play nice with the overloads.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89308 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
27e738d0d3f781672a5999d2a9e2827b00a97d0c 19-Nov-2009 Daniel Dunbar <daniel@zuster.org> Driver: Split OptTable out into OptTable.{h,cpp}

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89283 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
1d189e187b1bf7d7677aefd7482bcdad29683a0c 18-Nov-2009 Daniel Dunbar <daniel@zuster.org> Driver: Store Option ID field as unsigned to drop dependency on the options
type.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89232 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
080fb19301b1d0ce4149d99b8961e77f7ed4bb2e 22-Oct-2009 Daniel Dunbar <daniel@zuster.org> Driver: Fix thinko in logic for finding gcc's tool chain directory.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84805 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
87f9fd90ca08348d2a058c526760688e17208daa 21-Oct-2009 Benjamin Kramer <benny.kra@googlemail.com> Driver: don't produce bogus osx version numbers if no version (aka 0) was specified.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84781 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
74782b066ecfb0ee05b34ef3a29e24d39c59c1bd 20-Oct-2009 Daniel Dunbar <daniel@zuster.org> Driver: If unable to find the gcc tool chain, try the next OS rev.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84656 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
7adf94906e23eae295a006659c55eab9ffcf8b37 15-Oct-2009 Edward O'Callaghan <eocallaghan@auroraux.org> AuroraUX toolchain fixes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84176 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
55bac5339154cedc7541b5648f9c3486e547b45c 07-Oct-2009 Ted Kremenek <kremenek@apple.com> Revert r83443.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83451 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
44da821078a5f09127a01f9aa01dd9dd9af9de86 07-Oct-2009 Mike Stump <mrs@apple.com> Fixup pathnames.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83443 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
a92ba278fd0cc1679a9e3b6ca9aaf0713cd8fe6e 29-Sep-2009 Daniel Dunbar <daniel@zuster.org> Fix truck sized thinko where Darwin/ARM toolchain didn't look for programs in
libexec, *blush*.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83086 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
1d4612b829500cbe04a2eafca74afac703e34934 18-Sep-2009 Daniel Dunbar <daniel@zuster.org> Split Darwin toolchain into Clang and GCC Darwin toolchains with a common base.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82213 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
6cd4154b9088fa18ae05d11c0f3140fafd76c734 18-Sep-2009 Daniel Dunbar <daniel@zuster.org> Lift AddLinkRuntimeLibArgs into Darwin tool chain.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82212 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
48d5aae4387f07aef99dbe03f4047d709e9f4d35 18-Sep-2009 Daniel Dunbar <daniel@zuster.org> Lift getMacosxVersionMin out into Darwin ToolChain.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82210 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
6b200b2b698b6ac9e310f2225c69c85d28ae4fb0 18-Sep-2009 Daniel Dunbar <daniel@zuster.org> Lift AddLinkerSearchPaths() into Darwin tool chain.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82209 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
84ec96c8a810df59de4052368beab29f13456707 10-Sep-2009 Daniel Dunbar <daniel@zuster.org> Improve Darwin argument translation to match what the driver driver does.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81391 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
0dcb9a3705743ec972af37f48ead81a0939e3958 09-Sep-2009 Daniel Dunbar <daniel@zuster.org> Push bound architecture name into TranslateArgs.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
1eb4433ac451dc16f4133a88af2d002ac26c58ef 09-Sep-2009 Mike Stump <mrs@apple.com> Remove tabs, and whitespace cleanups.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81346 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
a6046bec7fc835186dde134fb81aa1b7d45cd9f0 09-Sep-2009 Daniel Dunbar <daniel@zuster.org> Fix ShouldUseClangCompiler to use llvm::Triple.
- -1 FIXME, and fixes 'clang -arch armv4t ...', for example.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81276 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
30392de4681602f1aabc61b0184b1de53bc172f0 04-Sep-2009 Daniel Dunbar <daniel@zuster.org> Darwin: Pass -iphoneos-version-min to ld when building for ARM.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81019 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
f395528158379e7ea9f6ff4bbb791abadca15aab 04-Sep-2009 Daniel Dunbar <daniel@zuster.org> Rename Darwin_X86 toolchain to just Darwin, this can support all platforms.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81016 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
8f28962de22867d372e5e454c33dcaaede860482 04-Sep-2009 Daniel Dunbar <daniel@zuster.org> Remove unused argument.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81010 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
e7925a075f110ab21afeae084670a155dea568e3 22-Aug-2009 Edward O'Callaghan <eocallaghan@auroraux.org> Second half of, clang, AuroraUX toolchain support.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79713 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
a9822de3a446940274584083c883c21873e89a6f 06-Aug-2009 Daniel Dunbar <daniel@zuster.org> Add additional library paths for Linux distros on mixed 32/64-bit systems.
- Patch by Carl-Daniel Hailfinger.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78272 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
f7b8eec37c8c8012fa525c71fb29a58c9f29beef 29-Jun-2009 Daniel Dunbar <daniel@zuster.org> OpenBSD support.
- Patch by Jonathan Gray!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74453 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
6b3454a219cee5ef36c4668961f93a5c32deab61 26-May-2009 Eli Friedman <eli.friedman@gmail.com> Fix for PR4140: Add the start of a Linux toolchain (basically, just
barely enough to get the given usage of -print-file-name working).



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72412 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
cb8ab23f7c800b041aeb6fc38c341d1aa0da86bf 22-May-2009 Daniel Dunbar <daniel@zuster.org> (llvm up) Use llvm::Triple for storing target triples.
- This commit has some messy stuff in it to extend string lifetimes, but that
will go away once we switch to using the enum'd Triple interfaces.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72243 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
11e1b40d759a643086f590f6ffbd9d68360bad46 02-May-2009 Daniel Dunbar <daniel@zuster.org> DragonFly ToolChain definition for driver.
- Patch by Alex Hornung!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70635 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
f36a06a9584cf351e1bb7c5ebf2f707ed416daba 10-Apr-2009 Daniel Dunbar <daniel@zuster.org> Honor MACOSX_DEPLOYMENT_TARGET environment variable.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68822 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
ff8857a9e6f533765f63b2934902645baa7ddd09 10-Apr-2009 Daniel Dunbar <daniel@zuster.org> Driver: Forward -miphoneos-version-min to clang.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68816 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
bc534664d008bc98d5ce76c053921bf5ee21fc65 02-Apr-2009 Daniel Dunbar <daniel@zuster.org> Driver: Tweak search paths for FreeBSD.
- Patch by Pawel Worach!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68332 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
008f54a54299eaafdaa940e2bdeaf55935ecd95a 01-Apr-2009 Daniel Dunbar <daniel@zuster.org> Driver: Add freebsd::Link
- Patch by Ed Schouten!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68233 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
68a31d406c6dc4382c700d1199b062de2aa7e1da 31-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Call 'as' directly on FreeBSD.
- Patch by Ed Schouten!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68121 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
75358d267256022475371416654b056ad8531cb3 30-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Sketch FreeBSD tool chain.
- Patch by Ed Schouten!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68061 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
478edc295efc560627053e2320bedd2f696ae028 30-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Track which original arguments an arg is derived from, so that
we can properly claim arguments, even if they have been translated by
the tool chain.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68020 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
9120f179fd2e354f067e4ef2c76dcf3fc4db8a16 30-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Add test case for darwin::Preprocess and darwin::Compile
tools, and enable them.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68019 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
02633b541b04ad5ffc1c70f4c2feeeb13e607057 26-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Add darwin::Link tool.
- <rdar://problem/6717381> [driver] implement ld argument translation
in new driver


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67760 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
ec069ed8a6647d84cc3a58d46d5b2a3c9f000704 25-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Implement Darwin_X86 tool chain level argument translation.
- This is really gross, but its the easiest way to match gcc. Once we
are confident in the driver, we can try and push these translations
down into tools.

- No test cases for this yet, it's hard to see the effects of these
translations before the gcc tool argument translation is pulled
over.

- Interaction with "unused argument" warning hasn't been worked out
yet.

- <rdar://problem/6717359> [driver] implement toolchain specific
argument translation.

"It's horrible in here."


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67683 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
4e7e9cff2e3b1bf15da06a4284a936da15e19578 25-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Handle -Xarch_, including warning for nasty -Xarch_ use cases
we aren't going to support. For example:
clang -Xarch_i386 -S -Xarch_i386 -o -Xarch_i386 myi386asm.s ...


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67680 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
f3cad36e59a41b5767fe662b5ac8911ee174b801 25-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Prep for tool chain specific argument translation.
- Lift ArgList to a base class for InputArgList and DerivedArgList.

- This is not a great decomposition, but it does embed the
translation into the type system, and keep things efficient for
tool chains that don't want to do any translation.

- No intended functionality change.

Eventually I hope to get rid of tool chain specific translation and
have each tool do the right thing, but for now this is the easiest way
to match gcc precisely (which is good for testing).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67676 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
af80e1ffafeb77929cc0b9ba8940a7f1c0b80d51 24-Mar-2009 Daniel Dunbar <daniel@zuster.org> Move ToolChain::ShouldUseClangCompiler to
Driver::ShouldUseClangCompiler.
- No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67639 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
82fa7c5b9dc5024893a6e63a2550896f74962376 24-Mar-2009 Daniel Dunbar <daniel@zuster.org> Install clang-cc to libexec/clang-cc (instead of bin/clang-cc).
- Updated ccc & driver to look in libexec/ for tools.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67607 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
c50b00dbd843cd929b5f220d4a8699852249f64c 23-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Setup file and program search paths in tool chains.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67529 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
8cac5f7e1ce63dd77ee0fb4ef68f9fa804f41ea6 20-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Add and use darwin::Assemble tool.
- Based on patch from Pieter de Bie; thanks!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67379 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
8eddb3fb6ff3dd20e3920380e1ce56df105b8a98 20-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Sketch Darwin tool chains.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67356 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/ToolChains.cpp
3917608370583fa30c466b6c3893448229aea9ad 20-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Move tool chain implementations into ToolChains.cpp.


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