summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/ToolChains.h
Commit message (Collapse)AuthorAgeFilesLines
* Unweaken vtables as per ↵David Blaikie2011-12-201-1/+2
| | | | | | http://llvm.org/docs/CodingStandards.html#ll_virtual_anch llvm-svn: 146959
* Split the Windows toolchain definition into its own file. This isChandler Carruth2011-12-171-0/+5
| | | | | | | | | | | | | | | 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. ;] llvm-svn: 146840
* Enable stack protectors by default for iOS. <rdar://problem/8836680>Bob Wilson2011-12-141-1/+1
| | | | llvm-svn: 146552
* Hexagon backend supportTony Linthicum2011-12-121-1/+17
| | | | llvm-svn: 146413
* Misc Minix-specific changes to clang:Eli Friedman2011-12-081-1/+1
| | | | | | | | | | | . 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. llvm-svn: 146206
* Driver: Add a --rtlib={compiler-rt,libgcc} argument which I plan to use to allowDaniel Dunbar2011-12-071-0/+3
| | | | | | dual support for compiler-rt on Linux, during bringup. llvm-svn: 146094
* Fix an issue that Duncan discovered on a specific (no longer current)Chandler Carruth2011-11-091-1/+2
| | | | | | | | | | | | 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. llvm-svn: 144165
* Begin lifting some of the one-off checking logic into generic helperChandler Carruth2011-11-061-0/+15
| | | | | | routines on the base toolchain class. llvm-svn: 143900
* Move the GCC installation detection logic down into the Generic_GCCChandler Carruth2011-11-061-79/+79
| | | | | | | | | | 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. llvm-svn: 143899
* The version objects need to actually store the version strings; theyChandler Carruth2011-11-061-2/+2
| | | | | | aren't guaranteed to live long enough otherwise. llvm-svn: 143875
* Lift the GCCVersion type into the header file and start persisting it inChandler Carruth2011-11-061-3/+38
| | | | | | | the detected GCC installation. This allows us to expose another aspect of what we detected: the GCC version. This will be used shortly. llvm-svn: 143871
* Switch some of these interfaces from std::string to StringRef and Twine.Chandler Carruth2011-11-061-3/+3
| | | | | | This will facilitate further use and recombinations of them. llvm-svn: 143869
* Remove a pointless member. I have no idea why I made this not a localChandler Carruth2011-11-051-2/+0
| | | | | | | | 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. llvm-svn: 143840
* Move the GCC installation detection helper a member of the LinuxChandler Carruth2011-11-051-0/+46
| | | | | | | | | | | | | | 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. llvm-svn: 143838
* Move the Linux header searching from the Frontend to the Driver. This isChandler Carruth2011-11-051-0/+5
| | | | | | | | | | | | | | | | 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. llvm-svn: 143822
* Begin the migration of header search logic to the driver, starting withChandler Carruth2011-11-041-0/+6
| | | | | | | | | 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. llvm-svn: 143752
* Clang driver changes for iOS 5.0 and OS X Lion support.Bob Wilson2011-10-071-0/+6
| | | | | | | | 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. llvm-svn: 141374
* For i386 kext fallback to llvm-gcc, search paths for several Darwin versions.Bob Wilson2011-09-201-0/+3
| | | | | | | | | 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. llvm-svn: 140187
* [driver] Default to arm mode when using the integrated assembler.Chad Rosier2011-09-201-2/+4
| | | | | | rdar://10125227 llvm-svn: 140179
* Treat the weak export of block runtime symbols as a deployment-targetJohn McCall2011-09-091-0/+1
| | | | | | | | 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. llvm-svn: 139404
* default property synthesis is off by defaultFariborz Jahanian2011-09-011-1/+1
| | | | | | for now. llvm-svn: 138958
* objective-c: Make auto synthesis of properties the default.Fariborz Jahanian2011-09-011-1/+1
| | | | | | This concludes //rdar://8843851 llvm-svn: 138947
* enable -fstack-protector on 10.5 for usermode binaries by default.Nico Weber2011-08-231-3/+6
| | | | | | This matches gcc's behavior. llvm-svn: 138324
* now that we have a centralized place to do so, add some using declarations forChris Lattner2011-07-201-1/+1
| | | | | | | some common llvm types: stringref and smallvector. This cleans up the codebase quite a bit. llvm-svn: 135576
* Change the driver's logic about Objective-C runtimes: abstract out aJohn McCall2011-07-061-1/+3
| | | | | | | | | | | | 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
* Build and use libcompiler_rt whenever possible.Eric Christopher2011-06-221-2/+4
| | | | | | Patch by Jean-Daniel Dupas! llvm-svn: 133624
* Automatic Reference Counting.John McCall2011-06-151-0/+18
| | | | | | | | | | 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
* Make the triple an explicit argument of FindTargetProgramPath.Joerg Sonnenberger2011-05-161-1/+4
| | | | | | | | | | 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
* Driver/Darwin: Change Darwin toolchain to explicitly track is-ios-sim bit, andDaniel Dunbar2011-04-301-11/+13
| | | | | | update -mios-simulator-version-min to set it. llvm-svn: 130592
* fix a bunch of comment typos found by codespell. Patch byChris Lattner2011-04-151-2/+2
| | | | | | Luis Felipe Strano Moraes! llvm-svn: 129559
* Driver/Darwin: Tweak link logic for simulator.Daniel Dunbar2011-03-311-0/+10
| | | | llvm-svn: 128641
* Driver: Give SelectTool access to the action inputs.Daniel Dunbar2011-03-181-11/+22
| | | | llvm-svn: 127902
* Driver/Darwin: Kill the DarwinGCC toolchain.Daniel Dunbar2011-03-181-23/+0
| | | | llvm-svn: 127896
* Driver/Darwin: Be bug compatible with GCC and ignore -pg on ARM.Daniel Dunbar2011-03-011-0/+2
| | | | llvm-svn: 126767
* Disable default synthesized properties until we can properly re-evaluate the ↵Ted Kremenek2011-02-171-2/+1
| | | | | | feature. llvm-svn: 125708
* build: Add support for DISABLE_DEFAULT_STRICT_ALIASING, which does what oneDaniel Dunbar2011-02-041-0/+7
| | | | | | might expect. llvm-svn: 124848
* Add NetBSD target support. Patch by Joerg Sonnenberger.Benjamin Kramer2011-02-021-0/+7
| | | | llvm-svn: 124736
* Add -fobjc-default-synthesized-properties flagTed Kremenek2010-12-231-0/+6
| | | | | | | | | | | | to allow us to explicitly control whether or not Objective-C properties are default synthesized. Currently this feature only works when using the -fobjc-non-fragile-abi2 flag (so there is no functionality change), but we can now turn off this feature without turning off all the features coupled with -fobjc-non-fragile-abi2. llvm-svn: 122519
* Use ld directly on linux. Changes from the previous try:Rafael Espindola2010-11-071-0/+5
| | | | | | | | | | | | | | | | | *) 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
* Revert while I debug test failures :-(Rafael Espindola2010-11-031-5/+0
| | | | llvm-svn: 118150
* Switch clang to run ld directly on linux. I tested this on all the linuxRafael Espindola2010-11-031-0/+5
| | | | | | | | | | | | | | | | | | | | | | 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
* Switch to using the integrated assembler by default on x86 and x86-64 ELFRafael Espindola2010-10-291-4/+16
| | | | | | systems. llvm-svn: 117697
* Driver: implement driver automagic support for -lcc_kextShantonu Sen2010-09-171-0/+3
| | | | | | | | | Rewrite linker arguments to use libclang_rt.cc_kext.a instead of gcc-specific libcc_kext.a Resolves Radar 7808495 llvm-svn: 114193
* Driver: Fix spelling of AddCXXStdlibLibArgs, which I copy-n-pasto'd.Daniel Dunbar2010-09-171-2/+2
| | | | llvm-svn: 114147
* Driver/DarwinClang: The new toolchain definition is going to drop the -L insideDaniel Dunbar2010-09-171-0/+3
| | | | | | | | | 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
* Driver: Add a toolchain hook for whether the system has native LLVM support.Daniel Dunbar2010-09-171-0/+2
| | | | llvm-svn: 114137
* Driver: Move Clang "triple" computation routines to method on theDaniel Dunbar2010-08-231-0/+4
| | | | | | | | | | | 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
* Visual Studio tools used on win32 hosts when targeting win32.Michael J. Spencer2010-08-211-0/+14
| | | | llvm-svn: 111748
* Run the assembler instead of gcc on Linux.Rafael Espindola2010-08-101-0/+2
| | | | llvm-svn: 110635
* Driver/Darwin: Change where Darwin computes the host version, to normalize toolDaniel Dunbar2010-08-021-6/+8
| | | | | | chain construction. llvm-svn: 110028
OpenPOWER on IntegriCloud