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