Eric Christopher
551ef45e85
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.
llvm-svn: 138343
2011-08-23 17:56:55 +00:00
Eli Friedman
872900987d
Add additional path to Linux toolchain. Patch by Will Dietz. PR10690.
...
llvm-svn: 137839
2011-08-17 18:17:26 +00:00
Bob Wilson
11403367c0
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.
llvm-svn: 137639
2011-08-15 19:13:06 +00:00
Bob Wilson
08b3756633
Remove duplicate option.
...
llvm-svn: 137638
2011-08-15 19:13:02 +00:00
NAKAMURA Takumi
c77574a2e3
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.
llvm-svn: 137568
2011-08-14 00:37:22 +00:00
Bob Wilson
0d45f58cbb
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.
llvm-svn: 137566
2011-08-13 23:48:55 +00:00
Chad Rosier
53ea71674c
If no -miphoneos-version-min specified, see if we can set the default based on
...
-isysroot.
rdar://9837120
llvm-svn: 137075
2011-08-08 23:39:34 +00:00
Chris Lattner
0e62c1cc0b
remove unneeded llvm:: namespace qualifiers on some core types now that LLVM.h imports
...
them into the clang namespace.
llvm-svn: 135852
2011-07-23 10:55:15 +00:00
Chad Rosier
5371243dab
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
llvm-svn: 135604
2011-07-20 19:14:30 +00:00
John McCall
9de1978f6e
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.
llvm-svn: 134456
2011-07-06 01:22:26 +00:00
John McCall
24fc0decfe
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.
llvm-svn: 134453
2011-07-06 00:26:06 +00:00
Chandler Carruth
42f96b78ec
Make the GCC version proliferation worse by N+1 for the sake of
...
ArchLinux. =/ Fixes PR10246.
llvm-svn: 134299
2011-07-02 00:51:03 +00:00
Dylan Noblesmith
afed776fa9
fix autoconf build from r133710
...
Sorry! This commit worked in CMake, but
CXX_INCLUDE_ROOT is defined in a different
config.h for autoconf.
llvm-svn: 133715
2011-06-23 13:50:47 +00:00
Eric Christopher
c235d0c635
Build and use libcompiler_rt whenever possible.
...
Patch by Jean-Daniel Dupas!
llvm-svn: 133624
2011-06-22 17:41:40 +00:00
Daniel Dunbar
471c4f8299
Driver/Darwin: Honor -Xarch_FOO when the arch matches either the toolchain or
...
the architecture being bound.
- Fixes things like -Xarch_armv7.
llvm-svn: 133490
2011-06-21 00:20:17 +00:00
NAKAMURA Takumi
0df100e1aa
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++.
llvm-svn: 133156
2011-06-16 12:43:57 +00:00
John McCall
31168b077c
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.
llvm-svn: 133103
2011-06-15 23:02:42 +00:00
Chandler Carruth
2561f09c9b
Revert "hack in my new variables for GCC"
...
Very sorry for the accidental commit of WIP code.
llvm-svn: 132745
2011-06-08 10:14:38 +00:00
Chandler Carruth
0169ec0988
hack in my new variables for GCC
...
llvm-svn: 132743
2011-06-08 10:13:14 +00:00
Benjamin Kramer
f90b5de834
Toolchain support for Ubuntu Oneiric. Patch by Michael Wild!
...
llvm-svn: 132669
2011-06-05 16:08:59 +00:00
Roman Divacky
00859c29bf
Make -m32 work on FreeBSD/PowerPC64.
...
llvm-svn: 132634
2011-06-04 07:37:31 +00:00
Rafael Espindola
304902141e
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.
llvm-svn: 132551
2011-06-03 15:39:42 +00:00
Rafael Espindola
d8f92c8dcc
Add support for centos.
...
llvm-svn: 132550
2011-06-03 15:23:24 +00:00
Eric Christopher
55d4989304
80-col cleanup.
...
llvm-svn: 132543
2011-06-03 13:28:31 +00:00
NAKAMURA Takumi
8b73b3e981
Untabify and fix whitespace.
...
llvm-svn: 132531
2011-06-03 03:49:51 +00:00
Rafael Espindola
0ddfbe230f
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.
llvm-svn: 132497
2011-06-02 22:18:46 +00:00
Eli Friedman
f7600949f4
Add Debian wheezy/sid to ToolChains.cpp. Patch by Michael Wild. PR10064.
...
llvm-svn: 132489
2011-06-02 21:36:53 +00:00
Chandler Carruth
e5d9d906cb
Fix a bug in the most recent openSUSE support patch.
...
This patch also by Ismail Donmez.
llvm-svn: 131958
2011-05-24 07:51:17 +00:00
Chris Lattner
d075c82f8c
add opensuse toolchain support, patch by Ismail Donmez!
...
llvm-svn: 131857
2011-05-22 16:45:07 +00:00
Chris Lattner
84e38557e0
Add Redhat Enterprise Linux to the Linux toolchain, PR9769,
...
patch by Bryce Lelbach
llvm-svn: 131840
2011-05-22 05:36:06 +00:00
David Chisnall
b8f65e25d8
- 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!
llvm-svn: 131637
2011-05-19 13:26:33 +00:00
Eric Christopher
b29614b357
Add some support for RHEL5 systems.
...
llvm-svn: 131505
2011-05-17 23:06:53 +00:00
Joerg Sonnenberger
637603a7cc
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.
llvm-svn: 131404
2011-05-16 13:35:02 +00:00
Daniel Dunbar
2f31fb99ef
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.
llvm-svn: 130595
2011-04-30 04:25:16 +00:00
Daniel Dunbar
a9cbb6b9d5
Driver/Darwin: Reject invalid arch combinations with
...
-mios-simulator-version-min.
llvm-svn: 130593
2011-04-30 04:20:40 +00:00
Daniel Dunbar
b1189434dd
Driver/Darwin: Change Darwin toolchain to explicitly track is-ios-sim bit, and
...
update -mios-simulator-version-min to set it.
llvm-svn: 130592
2011-04-30 04:18:16 +00:00
Daniel Dunbar
9aaeb6400b
Driver/Darwin: Sketch initial support for a -mios-simulator-version-min= flag
...
and associated deployment target environment variable.
llvm-svn: 130591
2011-04-30 04:15:58 +00:00
Nico Weber
adf8ba98e7
Let clang detect gcc triple on Ubuntu Natty. Patch by Thomas Jablin.
...
llvm-svn: 130119
2011-04-25 03:17:35 +00:00
Daniel Dunbar
bbd482226e
Driver/Darwin: Allow OS X deployment targets like 10.4.11, even though they
...
can't be represented in the environment define.
llvm-svn: 129939
2011-04-21 21:27:33 +00:00
Daniel Dunbar
5a784c8ed1
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.
llvm-svn: 129919
2011-04-21 17:41:34 +00:00
Daniel Dunbar
6914a98ccd
Driver: Improve -Xarch argument diagnostics a bit.
...
llvm-svn: 129918
2011-04-21 17:32:21 +00:00
Daniel Dunbar
308cfd045f
Driver/Darwin: Switch to using -macosx for OS name in triples.
...
llvm-svn: 129834
2011-04-19 23:34:17 +00:00
Daniel Dunbar
5c56828d91
Driver/Darwin: Switch to using new style triples.
...
llvm-svn: 129824
2011-04-19 21:45:47 +00:00
Daniel Dunbar
d107638328
Driver/Darwin: Change to use generic iOS runtime library, which we now always need.
...
llvm-svn: 129734
2011-04-18 23:48:36 +00:00
Ted Kremenek
00abe8ee31
Add ToolChain path support for linker on Slackware.
...
llvm-svn: 129704
2011-04-18 17:50:19 +00:00
Chris Lattner
57540c5be0
fix a bunch of comment typos found by codespell. Patch by
...
Luis Felipe Strano Moraes!
llvm-svn: 129559
2011-04-15 05:22:18 +00:00
Eric Christopher
534b6a01e8
Add support for Fedora16, gcc 4.6.0 and Fedora Rawhide.
...
Patch by Bobby Powers
llvm-svn: 129014
2011-04-06 18:22:53 +00:00
Ted Kremenek
43d47cc397
Add ToolChain support to get Clang to recognize Ubuntu/ppc and Gentoo/ppc64.
...
llvm-svn: 128944
2011-04-05 22:04:27 +00:00
Bob Wilson
d9249414b3
Add clang support for cortex-m0 cpus. Patch by James Orr.
...
llvm-svn: 128018
2011-03-21 20:40:05 +00:00
Joerg Sonnenberger
bc923f3f7d
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.
llvm-svn: 127995
2011-03-21 13:59:26 +00:00
Daniel Dunbar
151a372113
Driver/Darwin: Transparently fallback when compiling i386 -fapple-kext code, we
...
don't support the ABI yet.
llvm-svn: 127903
2011-03-18 20:14:03 +00:00
Daniel Dunbar
1e1c3ca51c
Driver: Give SelectTool access to the action inputs.
...
llvm-svn: 127902
2011-03-18 20:14:00 +00:00
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
Daniel Dunbar
71c723da29
Driver/Darwin: Change where Darwin computes the host version, to normalize tool
...
chain construction.
llvm-svn: 110028
2010-08-02 05:44:07 +00:00
Daniel Dunbar
3ae26dfc91
Driver/Darwin: Inline some constants.
...
llvm-svn: 110026
2010-08-02 05:44:01 +00:00
Daniel Dunbar
a18a487633
Driver/FreeBSD: Change how FreeBSD derives the Lib32 variable, to normalize tool
...
chain construction.
llvm-svn: 110025
2010-08-02 05:43:59 +00:00
Daniel Dunbar
cc7df6cc7b
Driver: Move HostInfo::lookupTypeForExtension to ToolChain::LookupTypeForExtension.
...
llvm-svn: 110024
2010-08-02 05:43:56 +00:00
Daniel Dunbar
88979914d7
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.
llvm-svn: 109989
2010-08-01 22:29:51 +00:00
Daniel Dunbar
354e96df95
Driver/Darwin: Add deployment target after doing argument translation, so that
...
-mmacosx-version-min works inside a -Xarch_ flag.
llvm-svn: 108712
2010-07-19 17:11:36 +00:00
Daniel Dunbar
b2b8a91aa4
Driver: Factor out Darwin::AddDeploymentTarget.
...
llvm-svn: 108711
2010-07-19 17:11:33 +00:00
Daniel Dunbar
b2447154e0
Driver/Darwin: Resolve deployment target defaulting to be more predictable;
...
assume we are targetting OS X unless an explicit option is given.
llvm-svn: 108426
2010-07-15 16:18:06 +00:00
Chris Lattner
3e2ee147d0
add driver support for minix, patch by Kees van Reeuwijk
...
from PR7583
llvm-svn: 107788
2010-07-07 16:01:42 +00:00
Daniel Dunbar
9dcde4bdec
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).
llvm-svn: 107353
2010-06-30 23:56:13 +00:00
Daniel Dunbar
e9c5e2cc71
Driver/FreeBSD: Add libexec to program search paths, to workaround some build
...
problem; patch by Ed Schouten.
llvm-svn: 105996
2010-06-15 15:03:31 +00:00
Daniel Dunbar
3f1a1ffd95
Driver: Eliminate uses of Arg::getIndex.
...
Also, fix a memory leak.
llvm-svn: 105963
2010-06-14 21:23:08 +00:00
Daniel Dunbar
2d6e9ee033
Driver: Add DerivedArgList::AddFOOArg helper functions, and switch to using them.
...
llvm-svn: 105957
2010-06-14 20:20:41 +00:00
Daniel Dunbar
775d406043
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.
...
llvm-svn: 105842
2010-06-11 22:00:26 +00:00
Daniel Dunbar
8829962030
Driver: Add an explicit dsymutil action.
...
llvm-svn: 105474
2010-06-04 18:28:36 +00:00
Daniel Dunbar
6232d347bc
Driver: Switch to using the integrated assembler for standalone assembly jobs
...
(or -save-temps), when the integrated assembler is enabled.
llvm-svn: 104282
2010-05-20 21:48:38 +00:00
Daniel Dunbar
06ef31c8b1
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.
llvm-svn: 100935
2010-04-10 18:18:57 +00:00
Daniel Dunbar
16334e143f
Driver: Ignore -fobjc-gc and -fobjc-gc-only for platforms which don't support them.
...
llvm-svn: 100930
2010-04-10 16:20:23 +00:00
Daniel Dunbar
4364558956
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.
llvm-svn: 100915
2010-04-10 01:24:22 +00:00
Daniel Dunbar
e543a5e684
Driver: Fix thinkos that prevented Clang from picking the right deployment
...
target when both {MACOSX,IPHONEOS}_DEPLOYMENT_TARGET were set.
llvm-svn: 99055
2010-03-20 08:47:42 +00:00
Chris Lattner
09797543bd
add TCE target support, patch by Pekka J!
...
llvm-svn: 97746
2010-03-04 21:07:38 +00:00
Daniel Dunbar
3241d400c8
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.
llvm-svn: 95787
2010-02-10 18:49:11 +00:00
Daniel Dunbar
ffa70e8b27
Driver/Darwin: Don't error/warn on conflicting deployment targets. Apparently
...
this is still a popular thing to do.
llvm-svn: 95093
2010-02-02 17:31:12 +00:00
Daniel Dunbar
6596984f3c
Driver/Darwin: Fix a crash when diagnosing conflicting deployment targets.
...
llvm-svn: 94812
2010-01-29 17:02:25 +00:00
Daniel Dunbar
f48d51d693
Driver/Darwin: Eliminate invalid uses of DarwinVersion -- this fixes a number of
...
defaults when targetting iPhoneOS (blocks, non-fragile ABI, stack protector).
llvm-svn: 94642
2010-01-27 00:57:11 +00:00
Daniel Dunbar
6d23b2f503
Driver/Darwin: Simplify target version checks.
...
llvm-svn: 94641
2010-01-27 00:57:03 +00:00
Daniel Dunbar
7c870175eb
Driver/Darwin: Eliminate confusing IsIPhoneOS parameter -- this was actually
...
just indicating whether the default target should be iPhoneOS.
llvm-svn: 94638
2010-01-27 00:56:44 +00:00
Daniel Dunbar
15c8942baf
Driver/Darwin: Switch to using isTargetIPhoneOS where appropriate.
...
llvm-svn: 94637
2010-01-27 00:56:37 +00:00
Daniel Dunbar
3b8e50d0ed
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.
llvm-svn: 94635
2010-01-27 00:56:25 +00:00
Daniel Dunbar
d54669d30b
Driver/Darwin: Honor IPHONEOS_DEPLOYMENT_TARGET.
...
llvm-svn: 94488
2010-01-26 01:45:19 +00:00
Daniel Dunbar
7cde09ac8a
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"
--
llvm-svn: 94150
2010-01-22 03:38:14 +00:00
Daniel Dunbar
dcc3b657f2
Driver/Darwin/ld: Factor out getDarwinArchName, for getting the "Darwin" arch
...
name being used in an driver invocation.
llvm-svn: 94139
2010-01-22 02:04:58 +00:00
Daniel Dunbar
6bc5be24fa
Remove ../libexec from clang program search path, clang-cc is dead.
...
llvm-svn: 93749
2010-01-18 19:16:53 +00:00
Daniel Dunbar
620327d66b
Fix a FIXME.
...
llvm-svn: 93087
2010-01-10 00:46:10 +00:00
Dan Gohman
d1e76b957b
Use -fno-math-errno by default, and remove the IsMathErrnoDefault
...
targethook, which is no longer being used. This fixes PR5971.
llvm-svn: 92987
2010-01-08 02:20:44 +00:00
Daniel Dunbar
083edf70a5
Add ToolChain::getDriver() and use it instead of going through the HostInfo
...
object.
llvm-svn: 91830
2009-12-21 18:54:17 +00:00
Daniel Dunbar
24c7f5efc5
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
llvm-svn: 91661
2009-12-18 02:43:17 +00:00
Jeffrey Yasskin
1615d45daa
Un-namespace-qualify llvm_unreachable. It's a macro, so the qualification gave
...
no extra safety anyway.
llvm-svn: 91207
2009-12-12 05:05:38 +00:00
Daniel Dunbar
da13faf982
Driver: ArgList doesn't depend on Options.h anymore.
...
llvm-svn: 89313
2009-11-19 04:25:22 +00:00
Daniel Dunbar
8c00957008
Driver: Introduce OptSpecifier class for protecting access to an option id.
...
llvm-svn: 89310
2009-11-19 04:14:53 +00:00
Daniel Dunbar
fffd18167d
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.
llvm-svn: 89308
2009-11-19 04:00:53 +00:00
Daniel Dunbar
aa767378ac
Driver: Split OptTable out into OptTable.{h,cpp}
...
llvm-svn: 89283
2009-11-19 00:15:11 +00:00
Daniel Dunbar
f324fa7095
Driver: Store Option ID field as unsigned to drop dependency on the options
...
type.
llvm-svn: 89232
2009-11-18 20:19:19 +00:00
Daniel Dunbar
820782aae0
Driver: Fix thinko in logic for finding gcc's tool chain directory.
...
llvm-svn: 84805
2009-10-22 00:12:00 +00:00
Benjamin Kramer
961b4e3edb
Driver: don't produce bogus osx version numbers if no version (aka 0) was specified.
...
llvm-svn: 84781
2009-10-21 21:05:07 +00:00
Daniel Dunbar
f4534ee0a3
Driver: If unable to find the gcc tool chain, try the next OS rev.
...
llvm-svn: 84656
2009-10-20 19:25:43 +00:00
Edward O'Callaghan
d8712d9143
AuroraUX toolchain fixes.
...
llvm-svn: 84176
2009-10-15 07:44:07 +00:00
Ted Kremenek
7881ac97a5
Revert r83443.
...
llvm-svn: 83451
2009-10-07 03:21:11 +00:00
Mike Stump
db9fca7735
Fixup pathnames.
...
llvm-svn: 83443
2009-10-07 01:11:54 +00:00
Daniel Dunbar
d71a03b164
Fix truck sized thinko where Darwin/ARM toolchain didn't look for programs in
...
libexec, *blush*.
llvm-svn: 83086
2009-09-29 18:52:10 +00:00
Daniel Dunbar
6276f99be5
Split Darwin toolchain into Clang and GCC Darwin toolchains with a common base.
...
llvm-svn: 82213
2009-09-18 08:15:13 +00:00
Daniel Dunbar
26d482a1a9
Lift AddLinkRuntimeLibArgs into Darwin tool chain.
...
llvm-svn: 82212
2009-09-18 08:15:03 +00:00
Daniel Dunbar
510d8a8dd8
Lift getMacosxVersionMin out into Darwin ToolChain.
...
llvm-svn: 82210
2009-09-18 08:14:46 +00:00
Daniel Dunbar
4c30b89def
Lift AddLinkerSearchPaths() into Darwin tool chain.
...
llvm-svn: 82209
2009-09-18 08:14:36 +00:00
Daniel Dunbar
3c7b9ca4bf
Improve Darwin argument translation to match what the driver driver does.
...
llvm-svn: 81391
2009-09-09 22:33:15 +00:00
Daniel Dunbar
e7af341454
Push bound architecture name into TranslateArgs.
...
llvm-svn: 81366
2009-09-09 18:36:12 +00:00
Mike Stump
11289f4280
Remove tabs, and whitespace cleanups.
...
llvm-svn: 81346
2009-09-09 15:08:12 +00:00
Daniel Dunbar
953b8d1f15
Fix ShouldUseClangCompiler to use llvm::Triple.
...
- -1 FIXME, and fixes 'clang -arch armv4t ...', for example.
llvm-svn: 81276
2009-09-08 23:36:55 +00:00
Daniel Dunbar
84e727fb72
Darwin: Pass -iphoneos-version-min to ld when building for ARM.
...
llvm-svn: 81019
2009-09-04 18:35:21 +00:00
Daniel Dunbar
f0a5b9b126
Rename Darwin_X86 toolchain to just Darwin, this can support all platforms.
...
llvm-svn: 81016
2009-09-04 18:34:51 +00:00
Daniel Dunbar
5095b293b7
Remove unused argument.
...
llvm-svn: 81010
2009-09-04 17:39:02 +00:00
Edward O'Callaghan
856e4ff78d
Second half of, clang, AuroraUX toolchain support.
...
llvm-svn: 79713
2009-08-22 01:06:46 +00:00
Daniel Dunbar
b46b5bbaa8
Add additional library paths for Linux distros on mixed 32/64-bit systems.
...
- Patch by Carl-Daniel Hailfinger.
llvm-svn: 78272
2009-08-06 01:47:11 +00:00
Daniel Dunbar
10de9e6602
OpenBSD support.
...
- Patch by Jonathan Gray!
llvm-svn: 74453
2009-06-29 20:52:51 +00:00
Eli Friedman
5cd659fd32
Fix for PR4140: Add the start of a Linux toolchain (basically, just
...
barely enough to get the given usage of -print-file-name working).
llvm-svn: 72412
2009-05-26 07:52:18 +00:00
Daniel Dunbar
51c7f97bea
(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.
llvm-svn: 72243
2009-05-22 02:53:45 +00:00
Daniel Dunbar
cc9123424f
DragonFly ToolChain definition for driver.
...
- Patch by Alex Hornung!
llvm-svn: 70635
2009-05-02 18:28:39 +00:00
Daniel Dunbar
b5023e90f4
Honor MACOSX_DEPLOYMENT_TARGET environment variable.
...
llvm-svn: 68822
2009-04-10 21:00:07 +00:00
Daniel Dunbar
c8b7af89ce
Driver: Forward -miphoneos-version-min to clang.
...
llvm-svn: 68816
2009-04-10 20:11:50 +00:00
Daniel Dunbar
b48a4aaec9
Driver: Tweak search paths for FreeBSD.
...
- Patch by Pawel Worach!
llvm-svn: 68332
2009-04-02 18:30:04 +00:00
Daniel Dunbar
d854c8d8a6
Driver: Add freebsd::Link
...
- Patch by Ed Schouten!
llvm-svn: 68233
2009-04-01 19:36:32 +00:00
Daniel Dunbar
8eb473c477
Driver: Call 'as' directly on FreeBSD.
...
- Patch by Ed Schouten!
llvm-svn: 68121
2009-03-31 17:45:15 +00:00
Daniel Dunbar
e24297c6b5
Driver: Sketch FreeBSD tool chain.
...
- Patch by Ed Schouten!
llvm-svn: 68061
2009-03-30 21:06:03 +00:00
Daniel Dunbar
53b406f40a
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.
llvm-svn: 68020
2009-03-29 22:29:05 +00:00
Daniel Dunbar
f64f5307dc
Driver: Add test case for darwin::Preprocess and darwin::Compile
...
tools, and enable them.
llvm-svn: 68019
2009-03-29 22:27:40 +00:00
Daniel Dunbar
c196421fbc
Driver: Add darwin::Link tool.
...
- <rdar://problem/6717381> [driver] implement ld argument translation
in new driver
llvm-svn: 67760
2009-03-26 16:23:12 +00:00
Daniel Dunbar
0af75a19a4
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."
llvm-svn: 67683
2009-03-25 06:58:31 +00:00
Daniel Dunbar
aabb0b11a3
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 ...
llvm-svn: 67680
2009-03-25 06:12:34 +00:00
Daniel Dunbar
dac54a81df
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).
llvm-svn: 67676
2009-03-25 04:13:45 +00:00
Daniel Dunbar
8fa879d39f
Move ToolChain::ShouldUseClangCompiler to
...
Driver::ShouldUseClangCompiler.
- No functionality change.
llvm-svn: 67639
2009-03-24 18:57:02 +00:00
Daniel Dunbar
2dbe89af65
Install clang-cc to libexec/clang-cc (instead of bin/clang-cc).
...
- Updated ccc & driver to look in libexec/ for tools.
llvm-svn: 67607
2009-03-24 04:07:10 +00:00
Daniel Dunbar
76ce7416ae
Driver: Setup file and program search paths in tool chains.
...
llvm-svn: 67529
2009-03-23 16:15:50 +00:00
Daniel Dunbar
be2208472c
Driver: Add and use darwin::Assemble tool.
...
- Based on patch from Pieter de Bie; thanks!
llvm-svn: 67379
2009-03-20 16:06:39 +00:00
Daniel Dunbar
03e0a4f324
Driver: Sketch Darwin tool chains.
...
llvm-svn: 67356
2009-03-20 00:57:52 +00:00
Daniel Dunbar
59e5e880f3
Driver: Move tool chain implementations into ToolChains.cpp.
...
llvm-svn: 67350
2009-03-20 00:20:03 +00:00