135 Commits

Author SHA1 Message Date
Daniel Dunbar
c76a9e6962 Driver/Darwin: Change fallback to use llvm-gcc search paths instead of GCC.
llvm-svn: 127897
2011-03-18 19:25:15 +00:00
Daniel Dunbar
50fab351d7 Driver/Darwin: Kill the DarwinGCC toolchain.
llvm-svn: 127896
2011-03-18 19:25:10 +00:00
Douglas Gregor
0a36f4d654 Support Ubuntu hardy and intrepid, from Thomas Gamper!
llvm-svn: 127583
2011-03-14 15:39:50 +00:00
Douglas Gregor
d9bb152821 Fix driver for thumb-capable ARM hosts, from Mikko Lehtonen!
llvm-svn: 127128
2011-03-06 19:11:49 +00:00
Benjamin Kramer
51477bd0d0 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!

llvm-svn: 126791
2011-03-01 22:50:47 +00:00
Daniel Dunbar
733b0f87df Driver/Darwin: Be bug compatible with GCC and ignore -pg on ARM.
llvm-svn: 126767
2011-03-01 18:49:30 +00:00
Roman Divacky
2e5065d889 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!

llvm-svn: 126760
2011-03-01 18:03:28 +00:00
Daniel Dunbar
5480578d83 Driver: Attmpt to fix some possibly UB that MSVC doesn't care for.
llvm-svn: 126513
2011-02-25 21:20:15 +00:00
Chandler Carruth
6a4e8e38f2 Add support for ArchLinux, patch by Kevin Winchester.
llvm-svn: 126476
2011-02-25 06:39:53 +00:00
Chris Lattner
ba9006df9e improve support for SUSE Linux Enterprise Server 11 SP1 (x86_64).
Patch by Csaba Raduly!

llvm-svn: 126245
2011-02-22 20:47:07 +00:00
Daniel Dunbar
1094bb101b Driver/Darwin: Support -Wl, with -Xarch_. This doesn't work naturally because of
the special way we model "linker input" arguments.

llvm-svn: 126023
2011-02-19 05:33:51 +00:00
Benjamin Kramer
24f1d3e60a Add NetBSD target support. Patch by Joerg Sonnenberger.
llvm-svn: 124736
2011-02-02 18:59:27 +00:00
Nick Lewycky
22197c1334 Add support for x86-64 Mandriva 2010.2. Reported by 'rindolf' on IRC!
llvm-svn: 124699
2011-02-01 23:03:29 +00:00
Chris Lattner
8cf302a1e7 optimize out a temporary sys::Path
llvm-svn: 123359
2011-01-13 01:35:58 +00:00
Michael J. Spencer
634f13eacb replace all uses of PathV1::IsSymlink with PathV2::is_symlink.
llvm-svn: 123344
2011-01-12 23:54:48 +00:00
Michael J. Spencer
f6efe58d45 Replace all uses of PathV1::exists with PathV2::fs::exists.
llvm-svn: 123150
2011-01-10 02:34:13 +00:00
Nick Lewycky
6da90771c4 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.

llvm-svn: 122646
2010-12-31 17:31:54 +00:00
Michael J. Spencer
d9da7a1f16 MemoryBuffer API update.
llvm-svn: 121956
2010-12-16 03:28:14 +00:00
Michael J. Spencer
f25faaaffb Use error_code instead of std::string* for MemoryBuffer.
llvm-svn: 121378
2010-12-09 17:36:38 +00:00
Michael J. Spencer
8aaf49959c Merge System into Support.
llvm-svn: 120297
2010-11-29 18:12:39 +00:00
Rafael Espindola
739b9cf104 Add missing else.
llvm-svn: 120231
2010-11-28 01:08:36 +00:00
Rafael Espindola
64fff2998d Check for gcc 4.3.4.
llvm-svn: 119839
2010-11-19 21:02:06 +00:00
Nuno Lopes
eb156609fe add support for the i686-pc-linux-gnu triple (used by Gentoo x86)
llvm-svn: 119807
2010-11-19 17:26:57 +00:00
Rafael Espindola
2abb162631 Add support for distros that like x86_64-unknown-linux-gnu.
llvm-svn: 119425
2010-11-17 00:25:26 +00:00
Zhongxing Xu
14776cf96a Add driver support for Ubuntu 9.10.
llvm-svn: 119137
2010-11-15 09:01:52 +00:00
Rafael Espindola
124798484a Add support for Exherbo. Patch by Elias Pipping.
llvm-svn: 118769
2010-11-11 02:07:13 +00:00
Rafael Espindola
66b291a41b Add support for Ubuntu Jaunty.
llvm-svn: 118673
2010-11-10 05:00:22 +00:00
Roman Divacky
b45d2672f7 Add a forgotten break. Found by Rafael Espindola!
llvm-svn: 118433
2010-11-08 19:39:10 +00:00
Roman Divacky
137426a42f Use integrated-as for processing .s files on FreeBSD. Copied
from Linux/OpenBSD code.

llvm-svn: 118419
2010-11-08 17:46:39 +00:00
Rafael Espindola
c5688628d8 Pass "-z relro" as two arguments. This works with both gnu ld and gold.
Patch by Frits van Bommel.

llvm-svn: 118406
2010-11-08 14:48:47 +00:00
Rafael Espindola
96aef794ba Use the integrated assembler when procession .s files on OpenBSD and Linux.
Original patch for OpenBSD by Vladimir Kirillov.

llvm-svn: 118386
2010-11-07 23:13:01 +00:00
Rafael Espindola
c8f008f649 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.

llvm-svn: 118382
2010-11-07 20:14:31 +00:00
Rafael Espindola
b2cbd85be8 Revert while I debug test failures :-(
llvm-svn: 118150
2010-11-03 04:43:56 +00:00
Rafael Espindola
c5dfb607f5 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 :-(

llvm-svn: 118149
2010-11-03 04:37:51 +00:00
Rafael Espindola
acc8709850 Switch to using the integrated assembler by default on x86 and x86-64 ELF
systems.

llvm-svn: 117697
2010-10-29 20:14:02 +00:00
Daniel Dunbar
89329cb8f7 Driver/Darwin: Remove a useless warning about missing runtime libraries. These
are almost never needed, so the warning isn't very useful.

llvm-svn: 116263
2010-10-11 23:31:07 +00:00
Daniel Dunbar
da4f6b5151 Driver/Darwin: Add a runtime library just for ___eprintf -- when targeting i386
some projects still depend on ___eprintf being available.

llvm-svn: 114509
2010-09-22 00:03:52 +00:00
Shantonu Sen
afeb03b41d 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

llvm-svn: 114193
2010-09-17 18:39:08 +00:00
Daniel Dunbar
00aff04c8d 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.

llvm-svn: 114172
2010-09-17 08:22:12 +00:00
Daniel Dunbar
3f7796fc22 Driver: Fix spelling of AddCXXStdlibLibArgs, which I copy-n-pasto'd.
llvm-svn: 114147
2010-09-17 01:20:05 +00:00
Daniel Dunbar
8fa86b1a44 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.

llvm-svn: 114146
2010-09-17 01:16:06 +00:00
Daniel Dunbar
62123a12f1 Driver: Add a toolchain hook for whether the system has native LLVM support.
llvm-svn: 114137
2010-09-17 00:24:52 +00:00
Douglas Gregor
6368235c5a Add missing #include
llvm-svn: 112974
2010-09-03 17:16:03 +00:00
Chris Lattner
d7e9383ba0 fix a hard coded version number, PR8031. Patch by 'nobled'.
llvm-svn: 112970
2010-09-03 16:47:03 +00:00
Daniel Dunbar
e9f7151485 Driver/Darwin: Pass the right arch specific dir for ARM, when linking.
llvm-svn: 112124
2010-08-26 00:55:52 +00:00
Daniel Dunbar
82eb4ce476 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.

llvm-svn: 111856
2010-08-23 22:35:37 +00:00
Daniel Dunbar
09a4851ead Driver/Darwin: When using the simplified Clang toolchain, make sure to also pass
the arch specific gcc lib path.

llvm-svn: 111839
2010-08-23 20:58:52 +00:00
Chandler Carruth
6f33bd9345 Add two new enumerations to the unsupported list for Windows so that all cases
are handled.

llvm-svn: 111773
2010-08-22 06:56:37 +00:00
Michael J. Spencer
b186bc3c4b Visual Studio tools used on win32 hosts when targeting win32.
llvm-svn: 111748
2010-08-21 21:55:07 +00:00
Rafael Espindola
92b0093112 Run the assembler instead of gcc on Linux.
llvm-svn: 110635
2010-08-10 00:25:48 +00:00