summaryrefslogtreecommitdiffstats
path: root/cmake
Commit message (Collapse)AuthorAgeFilesLines
* WIP: Clang: Add patch to build static libclangrelease_50-basedIvan Donchevskii2019-03-211-1/+1
|
* Merging r309481:Hans Wennborg2017-07-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | | ------------------------------------------------------------------------ r309481 | mgorny | 2017-07-28 23:46:45 -0700 (Fri, 28 Jul 2017) | 13 lines [OCaml] Install dynamic libraries in 'stubdirs' directory Install the OCaml dynamic libraries in the 'stubdirs' directory rather than the llvm subdirectory in order to fix running executables created by ocamlc. Otherwise, the executables fail to run being unable to locate the libraries (unless the LLVM directory is explicitly added to LD_LIBRARY_PATH). The staging directories are not altered since they work for our development setup anyway, and installing into two directories would unnecessarily make the code more complex. Differential Revision: https://reviews.llvm.org/D35995 ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_50@309592 91177308-0d34-0410-b5e6-96231b3b80d8
* Merging r309483:Hans Wennborg2017-07-311-0/+5
| | | | | | | | | | | | | | | | | ------------------------------------------------------------------------ r309483 | mgorny | 2017-07-29 01:10:24 -0700 (Sat, 29 Jul 2017) | 7 lines [OCaml] Pass -D/-UNDEBUG through to ocamlc Detect [/-][DU]NDEBUG in CMAKE_C_FLAGS* and pass them through to ocamlc. This is necessary because their value might affect visibility of dump functions in LLVM and ocamlc uses its own compiler and flags by default. Differential Revision: https://reviews.llvm.org/D35898 ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_50@309591 91177308-0d34-0410-b5e6-96231b3b80d8
* [Solaris] Detect Solaris LD, use detection results to pass Solaris-ld optionsRui Ueyama2017-07-121-2/+17
| | | | | | | | | | | | Solaris ld is not the only linker available on Solaris. Introducing linker detection and using LLVM_LINKER_IS_SOLARISLD to select Solaris-ld specific handling. Patch by: Fedor Sergeev Differential Revision: https://reviews.llvm.org/D35325 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@307852 91177308-0d34-0410-b5e6-96231b3b80d8
* Use --color-diagnostics instead of -color-diagnostics.Rui Ueyama2017-07-121-2/+2
| | | | | | | | | Solaris ld interprets -color-diagnostics as a -c option, so it is better to use --color-diagnostics instead. lld accepts both. Differential Revision: https://reviews.llvm.org/D35327 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@307850 91177308-0d34-0410-b5e6-96231b3b80d8
* [CMake] Support multi-target runtimes buildPetr Hosek2017-07-111-1/+9
| | | | | | | | | | | | | | | | | | | | | This changes adds support for building runtimes for multiple different targets using LLVM runtimes directory. The implementation follow the model used already by the builtins build which already supports this option. To specify the runtimes targets to be built, use the LLVM_RUNTIME_TARGETS variable, where the valuae is the list of targets to build runtimes for. To pass a per target variable to the runtimes build, you can set RUNTIMES_<target>_<variable> where <variable> will be passed to the runtimes build for <target>. Each runtime target (except for the default one) will be installed into lib/<target> subdirectory. Build targets will be suffixed with the target name. Differential Revision: https://reviews.llvm.org/D32816 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@307731 91177308-0d34-0410-b5e6-96231b3b80d8
* [cmake] Remove obsolete unset in CMake.George Karpenkov2017-07-101-5/+0
| | | | | | Differential Revision: https://reviews.llvm.org/D35024 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@307569 91177308-0d34-0410-b5e6-96231b3b80d8
* CMake: Add LLVM_UTILS_INSTALL_DIR optionTom Stellard2017-07-051-1/+1
| | | | | | | | | | | | | | | | | | Summary: This is like the LLVM_TOOLS_INSTALL_DIR option, but for the utils that are installed when the LLVM_INSTALL_UTILS. This option defaults to 'bin' to remain consistent with the current behavior, but distros may want to install these to libexec/llvm. Reviewers: beanz Reviewed By: beanz Subscribers: llvm-commits, mgorny Differential Revision: https://reviews.llvm.org/D30655 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@307150 91177308-0d34-0410-b5e6-96231b3b80d8
* TableGen.cmake: Use DEPFILE for Ninja Generator with CMake>=3.7.NAKAMURA Takumi2017-06-211-3/+26
| | | | | | | | | | | CMake emits build targets as relative paths (from build.ninja) but Ninja doesn't identify absolute path (in *.d) as relative path (in build.ninja). So, let file names, in the command line, relative from ${CMAKE_BINARY_DIR}, where build.ninja is. Note that tblgen is executed on ${CMAKE_BINARY_DIR} as working directory. Differential Revision: https://reviews.llvm.org/D33707 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@305961 91177308-0d34-0410-b5e6-96231b3b80d8
* [cmake] Add support for using the standalone leaks sanitizer with LLVM.Michael Gottesman2017-06-201-0/+3
| | | | | | | | | | This commit causes LLVM_USE_SANITIZER to now accept the "Leaks" option. This will cause cmake to pass in -fsanitize=leak in all of the appropriate places. I am making this change so that I can setup a linux bot that only detects leaks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@305839 91177308-0d34-0410-b5e6-96231b3b80d8
* D33466: Make file non-executable.Vassil Vassilev2017-06-201-0/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@305795 91177308-0d34-0410-b5e6-96231b3b80d8
* [CMake] Get rid of generating obj.*-tblgen if CMake >= 3.9 for Ninja generator.NAKAMURA Takumi2017-06-171-1/+2
| | | | | | CMake-3.9 doesn't let compilation units depend on their dependent libraries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@305635 91177308-0d34-0410-b5e6-96231b3b80d8
* [CMake] Introduce LLVM_TARGET_TRIPLE_ENV as an option to override ↵NAKAMURA Takumi2017-06-171-0/+13
| | | | | | | | | | | | | | | | | | | LLVM_DEFAULT_TARGET_TRIPLE at runtime. No behavior is changed if LLVM_TARGET_TRIPLE_ENV is blank or undefined. If LLVM_TARGET_TRIPLE_ENV is "TEST_TARGET_TRIPLE" and $TEST_TARGET_TRIPLE is not blank, llvm::sys::getDefaultTargetTriple() returns $TEST_TARGET_TRIPLE. Lit resets config.target_triple and config.environment[LLVM_TARGET_TRIPLE_ENV] to change the default target. Without changing LLVM_DEFAULT_TARGET_TRIPLE nor rebuilding, lit can be run; TEST_TARGET_TRIPLE=i686-pc-win32 bin/llvm-lit -sv path/to/test/ TEST_TARGET_TRIPLE=i686-pc-win32 ninja check-clang-tools Differential Revision: https://reviews.llvm.org/D33662 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@305632 91177308-0d34-0410-b5e6-96231b3b80d8
* Addressed Takumi's comment about redundancy.Galina Kistanova2017-06-121-32/+18
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@305222 91177308-0d34-0410-b5e6-96231b3b80d8
* TableGen.cmake: Try to fix build breakage introduce in r305142.NAKAMURA Takumi2017-06-111-1/+1
| | | | | | | | | | | | LLVM_TABLEGEN_TARGET is undefined in clang standalone build. STREQUAL cannot omit LHS. Then I saw an error; CMake Error at /path/to/install/llvm/lib/cmake/llvm/TableGen.cmake:40 (if): if given arguments: "STREQUAL" "/path/to/install/llvm/bin/llvm-tblgen.exe" Unknown arguments specified git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@305159 91177308-0d34-0410-b5e6-96231b3b80d8
* Added dependency on the TableGen executable file.Galina Kistanova2017-06-101-13/+37
| | | | | | | | | | | | | For the case when LLVM_OPTIMIZED_TABLEGEN is ON (enables LLVM_USE_HOST_TOOLS), we need both _TABLEGEN_TARGET and _TABLEGEN_EXE in the DEPENDS list to have .inc files rebuilt on a tablegen change, as cmake does not propagate file-level dependencies of custom targets. We could always have just one dependency on both the target and the file, but the 2 cases would produce cleaner cmake files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@305142 91177308-0d34-0410-b5e6-96231b3b80d8
* Enable c++1z experimental builds.Vassil Vassilev2017-06-091-0/+3
| | | | | | | Patch by David Abdurachmanov! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@305123 91177308-0d34-0410-b5e6-96231b3b80d8
* [cmake] Enable reverse iteration by default through build macroMandeep Singh Grang2017-06-061-0/+4
| | | | | | | | | | | | | | | | | | Summary: Reverse iteration can be turned on, by default, by setting -DLLVM_REVERSE_ITERATION:BOOL=ON during cmake. With this enabled, we can uncover lots of cases of non-determinism in codegen by simply running our tests (without any other change). We can then setup a buildbot which will have this turned on by default. Initially, a lot of unit tests will fail in this configuration. Once we start fixing non-determinism issues, we can gradually make this a blocker for patches. Reviewers: davide, dblaikie, mehdi_amini, dberlin Reviewed By: dblaikie Subscribers: probinson, mgorny, llvm-commits Differential Revision: https://reviews.llvm.org/D33908 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@304757 91177308-0d34-0410-b5e6-96231b3b80d8
* CMake: Fix docs-llvm-man target when clang+llvm is in the same source treeTom Stellard2017-05-151-2/+2
| | | | | | | | | | | | | | | | Summary: This was broken by r302499. Configuring with -DLLVM_BUILD_DOCS=ON would cause the docs-llvm-man target not to be created. Reviewers: anemet, beanz Reviewed By: anemet Subscribers: llvm-commits, mgorny Differential Revision: https://reviews.llvm.org/D33146 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303042 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert "Revert "CMake: Move sphinx detection into AddSphinxTarget.cmake""Tom Stellard2017-05-092-10/+13
| | | | | | | | This reverts commit r302054. Re-commit now that I have fixes for clang/lld. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302499 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert "CMake: Move sphinx detection into AddSphinxTarget.cmake"Tom Stellard2017-05-032-13/+10
| | | | | | | | This reverts commit r302025. clang and lld need to be updated too so they don't break with this patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302054 91177308-0d34-0410-b5e6-96231b3b80d8
* CMake: Move sphinx detection into AddSphinxTarget.cmakeTom Stellard2017-05-032-10/+13
| | | | | | | | | | | | Reviewers: chandlerc, beanz, mgorny Reviewed By: beanz Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D31773 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302025 91177308-0d34-0410-b5e6-96231b3b80d8
* CMake: Silence more stderr when running git.Tim Northover2017-05-021-1/+2
| | | | | | It can confuse bots collecting errors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@301934 91177308-0d34-0410-b5e6-96231b3b80d8
* limit to 2 parallel links when using thinltoBob Haarman2017-04-281-7/+11
| | | | | | | | | | | | | | | | | Summary: When using ThinLTO, the linker performs its own parallelism. This change limits the number of parallel link jobs that Ninja will issue to keep the total number of threads reasonable when linking with ThinLTO. Reviewers: hans, ruiu Subscribers: mgorny, mehdi_amini, Prazek Differential Revision: https://reviews.llvm.org/D31990 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@301676 91177308-0d34-0410-b5e6-96231b3b80d8
* CMake: ignore git stderr when trying to sort out revision. NFC.Tim Northover2017-04-281-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@301650 91177308-0d34-0410-b5e6-96231b3b80d8
* [LLVM][MIPS] Fix different definition of off_t in LLDB and LLVM.Nitesh Jain2017-04-241-0/+7
| | | | | | | | | | Reviewers: beanz Subscribers: jaydeep, bhushan, lldb-commits, slthakur, llvm-commits, krytarowski, emaste Differential Revision: https://reviews.llvm.org/D32125 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@301171 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a linker script to version LLVM symbolsSylvestre Ledru2017-04-171-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch adds a very simple linker script to version the lib's symbols and thus trying to avoid crashes if an application loads two different LLVM versions (as long as they do not share data between them). Note that we deliberately *don't* make LLVM_5.0 depend on LLVM_4.0: they're incompatible and the whole point of this patch is to tell the linker that. Avoid unexpected crashes when two LLVM versions are used in the same process. Author: Rebecca N. Palmer <rebecca_palmer@zoho.com> Author: Lisandro Damían Nicanor Pérez Meyer <lisandro@debian.org> Author: Sylvestre Ledru <sylvestre@debian.org> Bug-Debian: https://bugs.debian.org/848368 Reviewers: beanz, rnk Reviewed By: rnk Subscribers: mgorny, llvm-commits Differential Revision: https://reviews.llvm.org/D31524 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@300496 91177308-0d34-0410-b5e6-96231b3b80d8
* Reverting cmake/modules/AddLLVM.cmake changes from revision 300184 (Added by ↵Ayman Musa2017-04-131-2/+1
| | | | | | mistake). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@300185 91177308-0d34-0410-b5e6-96231b3b80d8
* [X86] Change instructions names to keep consistency with the naming ↵Ayman Musa2017-04-131-1/+2
| | | | | | | | | | convention. NFC Differential Revision: https://reviews.llvm.org/D31743 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@300184 91177308-0d34-0410-b5e6-96231b3b80d8
* Support: Add a VCSRevision.h header file.Peter Collingbourne2017-04-131-38/+46
| | | | | | | | | | | | | | | | | | | | | This is a magic header file supported by the build system that provides a single definition, LLVM_REVISION, containing an LLVM revision identifier, if available. This functionality previously lived in the LTO library, but I am moving it out to lib/Support because I want to also start using it in lib/Object to create the IR symbol table. This change also fixes a bug where LLVM_REVISION was never actually being used in lib/LTO because the macro HAS_LLVM_REVISION was never defined (it was misspelled as HAVE_SVN_VERSION_INC in lib/LTO/CMakeLists.txt, and was only being defined in a non-existent file Version.cpp). I also changed the code to use "git rev-parse --git-dir" to locate the .git directory, instead of looking for it in the LLVM source root directory, which makes this compatible with monorepos as well as git worktrees. Differential Revision: https://reviews.llvm.org/D31985 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@300160 91177308-0d34-0410-b5e6-96231b3b80d8
* Append -w when LLVM_ENABLE_WARNINGS is Off.Vassil Vassilev2017-04-121-0/+4
| | | | | | | Reviewed by rnk (D31702)! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@300100 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix detection of backtrace() availability on FreeBSDEd Maste2017-04-121-2/+3
| | | | | | | | | | | | | On FreeBSD backtrace is not part of libc and depends on libexecinfo being available. Instead of using manual checks we can use the builtin CMake module FindBacktrace.cmake to detect availability of backtrace() in a portable way. Patch By: Alex Richardson Differential Revision: https://reviews.llvm.org/D27143 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@300062 91177308-0d34-0410-b5e6-96231b3b80d8
* Respect CMAKE_INSTALL_MANDIR for sphinx generated manpagesJonathan Roelofs2017-04-051-1/+6
| | | | | | | | | This is a re-work of r297516, which was reverted in r297545. https://reviews.llvm.org/D30906 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@299547 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix evaluation of LLVM_DEFINITIONSSerge Pavlov2017-03-212-11/+23
| | | | | | | | | | | | | | | | | CMake variable LLVM_DEFINITIONS collects preprocessor definitions provided for host compiler that builds llvm components. A function add_llvm_definitions was introduced in AddLLVMDefinitions.cmake to keep track of these definitions and was intended to be a replacement for CMake command add_definitions. Actually in many cases add_definitions is still used and the content of LLVM_DEFINITIONS is not actual now. On the other hand the current version of CMake allows getting set of definitions in a more convenient way. This fix implements evaluation of the variable by reading corresponding cmake property. Differential Revision: https://reviews.llvm.org/D31125 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@298336 91177308-0d34-0410-b5e6-96231b3b80d8
* [cmake] Refactor warning flag logic to use Unix warnings with clang-clReid Kleckner2017-03-161-137/+146
| | | | | | | | | | | | | | | | | | | | | | | Summary: clang-cl understands the GCC-style -W[no-]foo flags, and for the most part ignores MSVC -wd flags. So, let's pass the curated set of warning flags we use on Unix on Windows. We can also stop passing /W4 -wd*, which for the most part corresponds to -Wall -Wextra with a bunch of flags that we mostly ignore. I had to disable -Wnon-virtual-dtor on Windows, because it fires on every COM class ever. I filed PR32286 to fix this. So far I've only found two instances of -Wstring-conversion in the WinASan code, which I'll fix. Other than that we seem clean. Reviewers: hans Subscribers: mgorny, llvm-commits Differential Revision: https://reviews.llvm.org/D30992 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297964 91177308-0d34-0410-b5e6-96231b3b80d8
* Re-apply r296730, "cmake: Configure the ThinLTO cache directory when using ↵Peter Collingbourne2017-03-151-5/+14
| | | | | | | | | ELF lld or gold." All known cache-related bugs observed when self hosting have been fixed (r296907 and r297853). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297854 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert r297516 - Respect CMAKE_INSTALL_MANDIR for sphinx generated manpagesEric Fiselier2017-03-111-1/+1
| | | | | | | | | When CMAKE_INSTALL_MANDIR isn't defined it ends up attempting to install the man pages under "/man1" and we really don't want to accidentally install stuff at the filesystem root. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297545 91177308-0d34-0410-b5e6-96231b3b80d8
* Respect CMAKE_INSTALL_MANDIR for sphinx generated manpagesJonathan Roelofs2017-03-101-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297516 91177308-0d34-0410-b5e6-96231b3b80d8
* CMake: Don't install llvm-tblgen twiceTom Stellard2017-03-091-1/+1
| | | | | | | | | | | | | | | | | | | | Summary: The add_tablegen macros defines its own install target, and it was also calling add_llvm_utility which adds another install target. Configuring with -DLLVM_TOOLS_INSTALL_DIR set to something other than 'bin' along with -DLLVM_INSTALL_UTILS=ON was causing llvm-tablgen to be installed to two separate directories. Reviewers: beanz, hans Reviewed By: beanz Subscribers: llvm-commits, mgorny Differential Revision: https://reviews.llvm.org/D30656 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297403 91177308-0d34-0410-b5e6-96231b3b80d8
* [X86] Quick fix for build bot failure (r297127) due to unused variable.Ayman Musa2017-03-071-2/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297130 91177308-0d34-0410-b5e6-96231b3b80d8
* [X86][AVX512] Adding new LLVM TableGen backend which generates the EVEX2VEX ↵Ayman Musa2017-03-071-1/+2
| | | | | | | | | | | | | | compressing tables. X86EvexToVex machine instruction pass compresses EVEX encoded instructions by replacing them with their identical VEX encoded instructions when possible. It uses manually supported 2 large tables that map the EVEX instructions to their VEX ideticals. This TableGen backend replaces the tables by automatically generating them. Differential Revision: https://reviews.llvm.org/D30451 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297127 91177308-0d34-0410-b5e6-96231b3b80d8
* Detect the existence of pthread_{s,g}etname_np in libpthread on LinuxKrzysztof Parzyszek2017-03-031-0/+8
| | | | | | | Older Linux distributions may not have those functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@296915 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert r296730, "cmake: Configure the ThinLTO cache directory when using ELF ↵Peter Collingbourne2017-03-031-14/+5
| | | | | | | | | lld or gold." Causes a build failure on the clang-with-thin-lto-ubuntu bot. http://lab.llvm.org:8011/builders/clang-with-thin-lto-ubuntu/builds/2117/steps/build-stage3-compiler/logs/stdio git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@296850 91177308-0d34-0410-b5e6-96231b3b80d8
* CMake: Clean up VersionFromVCS.cmakeTom Stellard2017-03-021-33/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Fix a few problems in VersionFromVCS.cmake to make it more reliable: - Stop using git svn info to retrieve the svn revision. I am unable to determine what the svn revision returned by this command means. During my testing this command returned a revision from a month ago which was not the HEAD of any of my local branches. Also, this revision was never actually added to the version string due to a typo in the script. All it was used for was to reject the revision number returned by git svn find-rev HEAD when the revision numbers didn't match. - Populate GIT_COMMIT even when we detect a git repo without any svn information. Reviewers: mehdi_amini, beanz Reviewed By: beanz Subscribers: mgorny, llvm-commits Differential Revision: https://reviews.llvm.org/D30092 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@296829 91177308-0d34-0410-b5e6-96231b3b80d8
* cmake: Configure the ThinLTO cache directory when using ELF lld or gold.Peter Collingbourne2017-03-021-5/+14
| | | | | | Differential Revision: https://reviews.llvm.org/D30522 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@296730 91177308-0d34-0410-b5e6-96231b3b80d8
* enable building with LTO on Windows using clang-cl and lldBob Haarman2017-03-011-10/+27
| | | | | | | | | | | | | | | Summary: With clang-cl gaining support for link-time optimization, we can now enable builds using LTO when using clang-cl and lld on Windows. To do this, we must not pass the -flto flag to the linker; lld-link does not understand it, but will perform LTO automatically when it encounters bitcode files. We also don't pass /Brepro when using LTO - the compiler doesn't generate object files for LTO, so passing the flag would only result in a warning about it being unused. Reviewers: rnk, ruiu, hans Reviewed By: hans Subscribers: mgorny, mehdi_amini, llvm-commits Differential Revision: https://reviews.llvm.org/D30240 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@296658 91177308-0d34-0410-b5e6-96231b3b80d8
* [Support] Provide linux/magic.h fallback for older kernelsMichal Gorny2017-02-221-0/+9
| | | | | | | | | | | | | | | | | | | | | The function for distinguishing local and remote files added in r295768 unconditionally uses linux/magic.h header to provide necessary filesystem magic numbers. However, in kernel headers predating 2.6.18 the magic numbers are spread throughout multiple include files. Furthermore, LLVM did not require kernel headers being installed so far. To increase the portability across different versions of Linux kernel and different Linux systems, add CMake header checks for linux/magic.h and -- if it is missing -- the linux/nfs_fs.h and linux/smb.h headers which contained the numbers previously. Furthermore, since the numbers are static and the feature does not seem critical enough to make LLVM require kernel headers at all, add fallback constants for the case when none of the necessary headers is available. Differential Revision: https://reviews.llvm.org/D30261 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295854 91177308-0d34-0410-b5e6-96231b3b80d8
* [CMake] Support externalizing debug info on non-Darwin platformsPetr Hosek2017-02-171-2/+10
| | | | | | | | On other platorms, we use objcopy to export the debug info. Differential Revision: https://reviews.llvm.org/D28575 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295481 91177308-0d34-0410-b5e6-96231b3b80d8
* [CMake] Add variable IOS to iOS toolchainChris Bieneman2017-02-171-0/+1
| | | | | | This is useful for some edge cases where detecting things gets tricky. Specifically LLDB needs this to support iOS because CMake doesn't support running tests using obj-c code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295392 91177308-0d34-0410-b5e6-96231b3b80d8
* [Tablegen] Instrumenting table gen DAGGenISelDAGAditya Nandakumar2017-02-141-0/+7
| | | | | | | | | | To help assist in debugging ISEL or to prioritize GlobalISel backend work, this patch adds two more tables to <Target>GenISelDAGISel.inc - one which contains the patterns that are used during selection and the other containing include source location of the patterns Enabled through CMake varialbe LLVM_ENABLE_DAGISEL_COV git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295081 91177308-0d34-0410-b5e6-96231b3b80d8